{
  "version": "0.1.0",
  "scanTitle": "SCAN: CA.gov",
  "issueNumber": 35,
  "generatedAt": "2026-04-14T00:38:14.458Z",
  "requestedUrls": [
    "https://ca.gov/",
    "https://ca.gov/translate/",
    "https://ca.gov/services/",
    "https://ca.gov/departments/",
    "https://ca.gov/about-california/",
    "https://ca.gov/support/",
    "https://ca.gov/topics/disaster-recovery/",
    "https://ca.gov/departments/220/services/1194/",
    "https://ca.gov/departments/176/services/52/",
    "https://ca.gov/departments/236/services/33/",
    "https://ca.gov/departments/193/services/15/",
    "https://ca.gov/departments/287/services/25/",
    "https://ca.gov/departments/287/services/26/",
    "https://ca.gov/topics/dmv-auto/",
    "https://ca.gov/topics/personal-records/",
    "https://ca.gov/topics/businesses/",
    "https://ca.gov/topics/jobs/",
    "https://ca.gov/topics/assistance/",
    "https://ca.gov/topics/taxes/",
    "https://ca.gov/topics/",
    "https://ca.gov/about/about-this-website/",
    "https://ca.gov/support/technical-help/",
    "https://ca.gov/contact/",
    "https://ca.gov/website-accessibility-certification.html",
    "https://ca.gov/legal/conditions-of-use/",
    "https://ca.gov/legal/privacy-policy/",
    "https://ca.gov/legal/accessibility/",
    "https://ca.gov/about/sitemap/",
    "https://ca.gov/services/all/",
    "https://ca.gov/services/list/",
    "https://ca.gov/departments/178/services/60/",
    "https://ca.gov/departments/217/services/37/",
    "https://ca.gov/departments/155/services/42/",
    "https://ca.gov/topics/education/",
    "https://ca.gov/topics/health/",
    "https://ca.gov/topics/housing/",
    "https://ca.gov/topics/immigration/",
    "https://ca.gov/topics/safety/",
    "https://ca.gov/topics/laws-info/",
    "https://ca.gov/topics/recreation/",
    "https://ca.gov/departments/all/",
    "https://ca.gov/departments/list/",
    "https://ca.gov/departments/220/",
    "https://ca.gov/departments/176/",
    "https://ca.gov/departments/236/",
    "https://ca.gov/departments/229/",
    "https://ca.gov/departments/287/",
    "https://ca.gov/departments/215/",
    "https://ca.gov/departments/175/",
    "https://ca.gov/departments/171/",
    "https://ca.gov/departments/178/",
    "https://ca.gov/departments/299/",
    "https://ca.gov/departments/89/",
    "https://ca.gov/departments/217/",
    "https://ca.gov/LAfires/",
    "https://ca.gov/gasfacts/",
    "https://ca.gov/immigration/",
    "https://ca.gov/support/maternal-health-resources.html",
    "https://ca.gov/departments/240/services/74/",
    "https://ca.gov/departments/259/services/49/",
    "https://ca.gov/departments/220/services/47/",
    "https://ca.gov/departments/220/services/48/",
    "https://ca.gov/departments/220/services/1202/",
    "https://ca.gov/departments/220/services/1221/",
    "https://ca.gov/departments/220/services/1225/",
    "https://ca.gov/departments/220/services/46/",
    "https://ca.gov/departments/220/services/1197/",
    "https://ca.gov/departments/220/services/1219/",
    "https://ca.gov/departments/220/services/1222/",
    "https://ca.gov/departments/220/services/1215/",
    "https://ca.gov/departments/220/services/1121/",
    "https://ca.gov/departments/220/services/43/",
    "https://ca.gov/departments/220/services/44/",
    "https://ca.gov/departments/220/services/45/",
    "https://ca.gov/departments/220/services/1200/",
    "https://ca.gov/departments/220/services/1211/",
    "https://ca.gov/departments/220/services/1218/",
    "https://ca.gov/departments/220/services/1217/",
    "https://ca.gov/departments/220/services/1220/",
    "https://ca.gov/services/all/?q=car+",
    "https://ca.gov/services/all/?q=dmv+",
    "https://ca.gov/services/all/?q=drive+",
    "https://ca.gov/services/all/?q=driver&",
    "https://ca.gov/services/all/?q=id+",
    "https://ca.gov/services/all/?q=transportation+",
    "https://ca.gov/services/all/?q=vehicle+",
    "https://ca.gov/services/all/?q=records+",
    "https://ca.gov/departments/176/services/53/",
    "https://ca.gov/departments/176/services/51/",
    "https://ca.gov/departments/176/services/1297/",
    "https://ca.gov/departments/176/services/1298/",
    "https://ca.gov/departments/176/services/1295/",
    "https://ca.gov/departments/176/services/1292/",
    "https://ca.gov/departments/176/services/1299/",
    "https://ca.gov/departments/176/services/1177/",
    "https://ca.gov/departments/176/services/1296/",
    "https://ca.gov/departments/176/services/1210/",
    "https://ca.gov/departments/176/services/1174/",
    "https://ca.gov/services/all/?q=birth+",
    "https://ca.gov/services/all/?q=birth+certificate+"
  ],
  "summary": {
    "okCount": 100,
    "errorCount": 0,
    "averagePerformanceScore": 0.8286,
    "averageBestPracticesScore": 0.9989,
    "totalTransferBytes": 69179853,
    "totalCo2Grams": 26.50151493903421,
    "averageTransferBytes": 691798.53,
    "averageCo2GramsPerPage": 0.2650151493903421,
    "averageRedundancyScore": 19.95,
    "highUrgencyRedundancyCount": 0,
    "averageModularizationScore": 40.99,
    "highUrgencyModularizationCount": 0,
    "averageDeadCodeScore": 15.05,
    "highUrgencyDeadCodeCount": 2,
    "averageNonCriticalResourcesScore": 10.55,
    "highUrgencyNonCriticalResourcesCount": 2,
    "averageFormValidationScore": 54.45,
    "highUrgencyFormValidationCount": 0,
    "averageMetadataScore": 11.35,
    "highUrgencyMetadataCount": 0,
    "averageLayoutAdaptationScore": 30.63,
    "highUrgencyLayoutAdaptationCount": 2,
    "averageSecurityLightScore": 31.32,
    "highUrgencySecurityLightCount": 0,
    "averageDependencyMaintenanceScore": 2.04,
    "highUrgencyDependencyMaintenanceCount": 0,
    "averageExpectedFilesScore": 30,
    "highUrgencyExpectedFilesCount": 0,
    "averageCompressionScore": 0.33,
    "highUrgencyCompressionCount": 0,
    "averageOptimizationScore": 100,
    "highUrgencyOptimizationCount": 100,
    "averageOfflineSupportScore": 90.5,
    "highUrgencyOfflineSupportCount": 100,
    "averageLanguageVersionScore": 0,
    "highUrgencyLanguageVersionCount": 0,
    "averageMediaHintsScore": 25.72,
    "highUrgencyMediaHintsCount": 0,
    "distinctSiteCount": 1,
    "singleSiteScan": true,
    "greenWeb": {
      "pageHostsChecked": 100,
      "pageHostsGreen": 0,
      "pageHostsNotGreen": 100,
      "pageHostsUnknown": 0,
      "externalOriginsChecked": 9,
      "externalOriginsGreen": 6,
      "externalOriginsNotGreen": 3,
      "externalOriginsUnknown": 0
    }
  },
  "budgetGuidance": {
    "wsgReference": {
      "id": "3.1",
      "title": "Set goals based on performance and energy impact",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact"
    },
    "benchmarkReference": {
      "name": "Sustainable Web Design Digital Carbon Ratings",
      "url": "https://sustainablewebdesign.org/digital-carbon-ratings/"
    },
    "current": {
      "averageTransferBytes": 691798.53,
      "averageCo2GramsPerPage": 0.2650151493903421,
      "transferRating": "B",
      "co2Rating": "D"
    },
    "recommendedBudget": {
      "targetRating": "B",
      "maxTransferBytesPerPage": 999270.4,
      "maxCo2GramsPerPage": 0.145
    },
    "reductionsNeeded": {
      "transferBytesPerPage": {
        "absolute": 0,
        "percent": 0,
        "needsReduction": false
      },
      "co2GramsPerPage": {
        "absolute": 0.12001514939034211,
        "percent": 45.28614672271856,
        "needsReduction": true
      }
    },
    "stretchBudget": {
      "targetRating": "A",
      "maxTransferBytesPerPage": 543897.6,
      "maxCo2GramsPerPage": 0.079
    }
  },
  "thirdPartyJsSummary": {
    "wsgReference": {
      "title": "Give third parties the same priority as first parties during assessment",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
    },
    "averageScore": 63.3,
    "highUrgencyPages": 100,
    "assessedPages": 100,
    "providers": [
      {
        "hostname": "www.googletagmanager.com",
        "pageCount": 100,
        "transferBytes": 43205159,
        "requestCount": 300,
        "status": "green",
        "hostedBy": "Google Cloud"
      },
      {
        "hostname": "alert.cdt.ca.gov",
        "pageCount": 99,
        "transferBytes": 28483,
        "requestCount": 99,
        "status": "not-green",
        "hostedBy": null
      },
      {
        "hostname": "cdn.cdt.ca.gov",
        "pageCount": 2,
        "transferBytes": 61886,
        "requestCount": 2,
        "status": "not-green",
        "hostedBy": null
      },
      {
        "hostname": "translate.googleapis.com",
        "pageCount": 1,
        "transferBytes": 121342,
        "requestCount": 1,
        "status": "green",
        "hostedBy": "Google Cloud"
      },
      {
        "hostname": "tableau.cnra.ca.gov",
        "pageCount": 1,
        "transferBytes": 61080,
        "requestCount": 1,
        "status": "not-green",
        "hostedBy": null
      },
      {
        "hostname": "translate.google.com",
        "pageCount": 1,
        "transferBytes": 28379,
        "requestCount": 1,
        "status": "green",
        "hostedBy": "Google Cloud"
      },
      {
        "hostname": "translate-pa.googleapis.com",
        "pageCount": 1,
        "transferBytes": 3259,
        "requestCount": 1,
        "status": "green",
        "hostedBy": "Google Cloud"
      }
    ]
  },
  "externalProviderRiskSummary": {
    "recurringNonGreenProviders": [
      {
        "hostname": "alert.cdt.ca.gov",
        "status": "not-green",
        "hostedBy": null,
        "pageCount": 99,
        "requestCount": 99,
        "transferBytes": 28483,
        "resourceTypes": [
          "script"
        ],
        "riskScore": 86
      },
      {
        "hostname": "cdn.cdt.ca.gov",
        "status": "not-green",
        "hostedBy": null,
        "pageCount": 2,
        "requestCount": 4,
        "transferBytes": 188213,
        "resourceTypes": [
          "script",
          "stylesheet"
        ],
        "riskScore": 65
      }
    ],
    "nonGreenProviders": [
      {
        "hostname": "alert.cdt.ca.gov",
        "status": "not-green",
        "hostedBy": null,
        "pageCount": 99,
        "requestCount": 99,
        "transferBytes": 28483,
        "resourceTypes": [
          "script"
        ],
        "riskScore": 86
      },
      {
        "hostname": "cdn.cdt.ca.gov",
        "status": "not-green",
        "hostedBy": null,
        "pageCount": 2,
        "requestCount": 4,
        "transferBytes": 188213,
        "resourceTypes": [
          "script",
          "stylesheet"
        ],
        "riskScore": 65
      },
      {
        "hostname": "tableau.cnra.ca.gov",
        "status": "not-green",
        "hostedBy": null,
        "pageCount": 1,
        "requestCount": 1,
        "transferBytes": 61080,
        "resourceTypes": [
          "script"
        ],
        "riskScore": 47
      }
    ],
    "recurringUnknownProviders": []
  },
  "formValidationSummary": {
    "wsgReference": {
      "title": "Validate form errors and account for tooling requirements",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#validate-form-errors-and-account-for-tooling-requirements"
    },
    "uniqueElementSignaturesAssessed": 5,
    "totalOccurrences": 538,
    "reusedFromCacheCount": 247,
    "recurringElements": [
      {
        "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
        "role": "search",
        "controlType": "search",
        "fieldName": "q",
        "score": 60,
        "urgency": "high",
        "pageCount": 99,
        "occurrenceCount": 99
      },
      {
        "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
        "role": "form",
        "controlType": "textarea",
        "fieldName": "add-feedback",
        "score": 50,
        "urgency": "medium",
        "pageCount": 99,
        "occurrenceCount": 99
      },
      {
        "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
        "role": "form",
        "controlType": "checkbox",
        "fieldName": "agencytags",
        "score": 50,
        "urgency": "medium",
        "pageCount": 27,
        "occurrenceCount": 27
      },
      {
        "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
        "role": "form",
        "controlType": "search",
        "fieldName": null,
        "score": 60,
        "urgency": "high",
        "pageCount": 25,
        "occurrenceCount": 25
      },
      {
        "signature": "no-form|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
        "role": "form",
        "controlType": "search",
        "fieldName": "q",
        "score": 60,
        "urgency": "high",
        "pageCount": 2,
        "occurrenceCount": 2
      }
    ],
    "recurringSearchElements": [
      {
        "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
        "role": "search",
        "controlType": "search",
        "fieldName": "q",
        "score": 60,
        "urgency": "high",
        "pageCount": 99,
        "occurrenceCount": 99
      }
    ]
  },
  "metadataSummary": {
    "wsgReference": {
      "title": "Structure metadata for machine readability",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#structure-metadata-for-machine-readability"
    },
    "assessedPages": 100,
    "averageScore": 11.35,
    "highUrgencyPages": 0,
    "missing": {
      "missingLang": 0,
      "missingDescription": 99,
      "missingCanonical": 14,
      "missingOpenGraphCore": 0,
      "missingTwitterCard": 1,
      "invalidStructuredData": 0
    }
  },
  "layoutSupportSummary": {
    "wsgReference": {
      "title": "Ensure layouts work for different devices and requirements",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#ensure-layouts-work-for-different-devices-and-requirements"
    },
    "assessedPages": 100,
    "averageScore": 30.63,
    "highUrgencyPages": 2,
    "mobileOverflowPages": 2,
    "tabletOverflowPages": 0,
    "totalMobileSmallTapTargets": 6746,
    "totalTabletSmallTapTargets": 7346,
    "totalFixedWidthOffenders": 0
  },
  "securityLightSummary": {
    "wsgReference": {
      "title": "Ensure that your code is secure",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#ensure-that-your-code-is-secure"
    },
    "assessedPages": 100,
    "averageScore": 31.32,
    "highUrgencyPages": 0,
    "pagesWithoutCsp": 1,
    "pagesWithoutHsts": 100,
    "pagesWithVulnerableLibraries": 0,
    "totalExternalScriptsWithoutIntegrity": 102
  },
  "dependencyMaintenanceSummary": {
    "wsgReference": {
      "title": "Use dependencies appropriately and ensure maintenance",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
    },
    "assessedPages": 100,
    "averageScore": 2.04,
    "highUrgencyPages": 0,
    "pagesWithVulnerableDependencies": 0,
    "totalVulnerableDependencies": 0,
    "topRecurringLibraries": []
  },
  "expectedFilesSummary": {
    "wsgReference": {
      "title": "Include expected and beneficial files",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#include-expected-and-beneficial-files"
    },
    "assessedPages": 100,
    "averageScore": 30,
    "highUrgencyPages": 0,
    "missing": {
      "robotsTxt": 0,
      "sitemapXml": 100,
      "securityTxt": 0,
      "webManifest": 100,
      "favicon": 0
    }
  },
  "compressionSummary": {
    "wsgReference": {
      "title": "Reduce data transfer with compression",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
    },
    "assessedPages": 100,
    "averageScore": 0.33,
    "highUrgencyPages": 0,
    "pagesMissingTextCompression": 0,
    "totalEstimatedSavingsBytes": 335048,
    "recurringOpportunities": []
  },
  "optimizationSummary": {
    "wsgReference": {
      "title": "Use the most efficient solution for your service",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
    },
    "assessedPages": 100,
    "averageScore": 100,
    "highUrgencyPages": 100,
    "totalEstimatedSavingsBytes": 23401090,
    "totalEstimatedBlockingMs": 6293,
    "recurringOpportunities": [
      {
        "id": "unused-javascript",
        "title": "Remove unused JavaScript",
        "pageCount": 100,
        "totalEstimatedSavingsBytes": 22373875,
        "totalEstimatedBlockingMs": 0
      },
      {
        "id": "render-blocking-resources",
        "title": "Eliminate render-blocking resources",
        "pageCount": 18,
        "totalEstimatedSavingsBytes": 0,
        "totalEstimatedBlockingMs": 6293
      },
      {
        "id": "offscreen-images",
        "title": "Lazy-load offscreen images",
        "pageCount": 4,
        "totalEstimatedSavingsBytes": 401875,
        "totalEstimatedBlockingMs": 0
      },
      {
        "id": "uses-responsive-images",
        "title": "Right-size images for viewport",
        "pageCount": 4,
        "totalEstimatedSavingsBytes": 191656,
        "totalEstimatedBlockingMs": 0
      },
      {
        "id": "unused-css-rules",
        "title": "Remove unused CSS",
        "pageCount": 2,
        "totalEstimatedSavingsBytes": 98636,
        "totalEstimatedBlockingMs": 0
      }
    ]
  },
  "offlineSupportSummary": {
    "wsgReference": {
      "title": "Optimize caching and support offline access",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
    },
    "assessedPages": 100,
    "averageScore": 90.5,
    "highUrgencyPages": 100,
    "pagesWithoutServiceWorker": 100,
    "pagesWithoutOfflineSupport": 100,
    "pagesWithWeakCacheTtl": 5,
    "recurringOpportunities": [
      {
        "id": "service-worker",
        "title": "Add service worker support",
        "urgency": "high",
        "pageCount": 100
      },
      {
        "id": "works-offline",
        "title": "Ensure critical routes work offline",
        "urgency": "high",
        "pageCount": 100
      },
      {
        "id": "installable-manifest",
        "title": "Improve web app manifest support",
        "urgency": "medium",
        "pageCount": 100
      },
      {
        "id": "offline-start-url",
        "title": "Support offline start URL behavior",
        "urgency": "medium",
        "pageCount": 100
      },
      {
        "id": "uses-long-cache-ttl",
        "title": "Strengthen static asset cache TTL",
        "urgency": "medium",
        "pageCount": 5
      }
    ]
  },
  "languageVersionSummary": {
    "wsgReference": {
      "title": "Use the latest stable language version",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
    },
    "assessedPages": 100,
    "averageScore": 0,
    "highUrgencyPages": 0,
    "pagesWithOutdatedRuntimeSignals": 0,
    "pagesWithVersionDisclosure": 100,
    "topOutdatedSignals": []
  },
  "mediaHintsSummary": {
    "wsgReference": {
      "title": "Optimize media to reduce resource use",
      "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use"
    },
    "assessedPages": 100,
    "averageScore": 25.72,
    "highUrgencyPages": 0,
    "pagesWithAutoplay": 0,
    "pagesWithUnmutedAutoplay": 0,
    "pagesWithoutDarkMode": 100,
    "pagesWithLazyLoadingGap": 44
  },
  "wsgHighlightsSummary": {
    "assessedPages": 100,
    "averageScore": 69.9,
    "highlights": [
      {
        "guideline": "11.3",
        "title": "Incomplete media lazy loading",
        "urgency": "medium",
        "detail": "Only 8/10 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
        "wsid": "11.lazy loading",
        "assessor": "script",
        "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>",
        "pageCount": 100,
        "pages": {},
        "criteria": {
          "title": "Lazy loading",
          "description": "Incorporate lazy/deferred loading from the start: Consider which media elements are immediately required, and which would be better relegated to loading on specific user interaction. Load data-intensive media on the client side, including the media itself, behind a facade - a non-functional and static representational element.",
          "resources": [
            {
              "Avoid hotlinking images with Cross-Origin-Resource-Policy": "https://www.sjoerdlangkemper.nl/2024/11/27/avoid-hotlinking-images-with-corp-cross-origin-resource-policy/",
              "Fast load times: Optimize Your Images": "https://web.dev/explore/fast?hl=en#optimize-your-images",
              "GPF - General Policy Framework (PDF) - 4.1 - UX and UI (Autoplay)": "https://www.arcep.fr/uploads/tx_gspublication/general_policy_framework_for_the_ecodesign_of_digital_services_version_2024.pdf",
              "GR491 - 9-5071 - Autoplay": "https://gr491.isit-europe.org/en/crit.php?id=9-5071-frontend-active-content-uses-technical-resources-to-function.",
              "GR491 - 9-5068 - Lazy Loading": "https://gr491.isit-europe.org/en/crit.php?id=9-5068-frontend-when-loading-the-service-on-the-user",
              "GreenIT - 0051 - Use lazy loading": "https://rweb.greenit.fr/en/fiches/RWEB_0051-use-lazy-loading",
              "How to Defer Offscreen Images and Background Images": "https://www.debugbear.com/blog/defer-offscreen-images",
              "Lazy Load Background Images with the IntersectionObserver API": "https://www.debugbear.com/blog/lazy-load-background-images-intersection-observer",
              "Lazy load third-party resources with facades": "https://developer.chrome.com/docs/lighthouse/performance/third-party-facades?hl=en",
              "Lazy loading (Wikipedia)": "https://en.wikipedia.org/wiki/Lazy_loading",
              "Lazy loading (Performance)": "https://developer.mozilla.org/en-US/docs/Web/Performance/Guides/Lazy_loading",
              "Lazy Loading Images Based on Screen Size": "https://www.aaron-gustafson.com/notebook/lazy-loading-images-based-on-screen-size/",
              "Non-blocking cross-browser image rendering on the canvas": "https://calendar.perfplanet.com/2025/non-blocking-image-canvas/",
              "Web Almanac: Sustainability": "https://almanac.httparchive.org/en/2024/sustainability"
            }
          ],
          "guideline": {
            "categoryId": "2",
            "categoryName": "User Experience Design",
            "id": "11",
            "title": "Optimize media to reduce resource use",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use",
            "subheading": "Ensure all media - including audio, video, animation, images, and other novel formats, when deemed necessary in the design, are optimized, correctly sized and formatted, use lazy loading where appropriate, with a usage policy in place."
          },
          "benefits": [
            {
              "Economic": "Eliminating data-intensive media entirely and using alternatives such as transcripts reduce costs associated with hosting and data transfer.",
              "Environment": "Reducing the battery drain associated with loading data-intensive content by preventing auto-loading or delaying it until the moment it is required reduces energy emissions associated with data transfer and renering.",
              "Performance": "Tailoring user experience to the device, situation, and environment of the user by having different resolutions and quality formats available reduces wasted bandwidth. This can boost performance for users who make choices to reduce the data downloaded.",
              "Social Equity": "Providing alternatives to data-intensive media allows with limited bandwidth or older devices to access content."
            }
          ],
          "example": "<picture> \n  <source type=\"image/avif\" srcset=\"image.avif\">\n  <source type=\"image/webp\" srcset=\"image.webp\">\n  <img width=\"100px\" height=\"100px\" src=\"image.jpg\" alt=\"\" loading=\"lazy\"/>\n</picture>"
        }
      },
      {
        "guideline": "7.3",
        "title": "Multiple tracking scripts detected",
        "urgency": "medium",
        "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
        "wsid": "7.analytics and tracking",
        "assessor": "script",
        "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>",
        "pageCount": 100,
        "pages": {},
        "criteria": {
          "title": "Analytics and tracking",
          "description": "Evaluate and remove unnecessary or unused analytics and tracking, especially any operating without user consent.",
          "resources": [
            {
              "48 Cart Abandonment Rate Statistics 2023": "https://baymard.com/lists/cart-abandonment-rate",
              "Guide to using analytics for performance and privacy": "https://www.wholegraindigital.com/blog/guide-to-using-analytics-for-performance-and-privacy/",
              "Is GDPR Good for the Environment?": "https://www.mightybytes.com/insights/is-gdpr-good-for-the-environment/",
              "Learn Privacy": "https://web.dev/blog/introducing-learn-privacy?hl=en",
              "Review of Web Analytic Tools for Sustainable Design (PDF)": "https://www.techrxiv.org/users/708350/articles/692959/master/file/data/092900a237/092900a237.pdf",
              "Tracking Protection in Firefox For Privacy and Performance (PDF)": "https://www.ieee-security.org/TC/SPW2015/W2SP/papers/W2SP_2015_submission_32.pdf",
              "United Nations SDGS - Goal 1 - Poverty": "https://sdgs.un.org/goals/goal1#targets_and_indicators",
              "United Nations SDGS - Goal 3 - Health & Well-being": "https://sdgs.un.org/goals/goal3#targets_and_indicators",
              "Why you should stop using Google Analytics on your website": "https://plausible.io/blog/remove-google-analytics"
            }
          ],
          "guideline": {
            "categoryId": "2",
            "categoryName": "User Experience Design",
            "id": "7",
            "title": "Avoid being manipulative or deceptive",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "subheading": "Avoid using patterns, content, tools, or techniques that may artificially manipulate or deceive the user."
          },
          "benefits": [
            {
              "Accessibility": "Avoiding deceptive design patterns improves user experience for people using assistive technologies, as these can be especially disruptive when using a screen reader. This improves their trust and access to your content.",
              "Conversion": "Avoiding deceptive patterns can result in fewer complaints, reduce barriers, and improve conversion.",
              "Environment": "Avoiding deceptive design patterns reduces energy consumption because users do not waste time and energy trying to undo choices they never intended to make.",
              "Performance": "Using ethical, non-disruptive practices will accelerate the user journey and perceived speed and reduce unnecessary friction.",
              "Privacy": "Ensuring compliance with ethical privacy practices and avoiding dark and deceptive patterns reduces litigation risk. It also reduces data transmission between tracking and advertising services providers."
            }
          ],
          "example": null
        }
      },
      {
        "guideline": "2.4",
        "title": "Review User Journey Efficiency",
        "urgency": "investigate",
        "detail": "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.",
        "wsid": "2.minimize non-essential content",
        "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
        "assessor": "human",
        "pageCount": 100,
        "pages": {},
        "criteria": null
      },
      {
        "guideline": "2.6",
        "title": "Check for Engagement Traps",
        "urgency": "investigate",
        "detail": "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.",
        "wsid": "2.design to assist not distract",
        "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
        "assessor": "human",
        "pageCount": 100,
        "pages": {},
        "criteria": null
      },
      {
        "guideline": "2.7",
        "title": "Audit for Deceptive Design Patterns",
        "urgency": "investigate",
        "detail": "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.",
        "wsid": "2.avoid manipulative deceptive",
        "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
        "assessor": "human",
        "pageCount": 100,
        "pages": {},
        "criteria": null
      },
      {
        "guideline": "2.14",
        "title": "Verify Accessible Alternatives for All Media",
        "urgency": "investigate",
        "detail": "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.",
        "wsid": "2.offer suitable alternatives",
        "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
        "assessor": "human",
        "pageCount": 100,
        "pages": {},
        "criteria": null
      },
      {
        "guideline": "2.18",
        "title": "Confirm User Research Was Conducted",
        "urgency": "investigate",
        "detail": "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.",
        "wsid": "2.involve users early",
        "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
        "assessor": "human",
        "pageCount": 100,
        "pages": {},
        "criteria": null
      },
      {
        "guideline": "2.10",
        "title": "Review Content Conciseness",
        "urgency": "investigate",
        "detail": "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.",
        "wsid": "2.provide clear inclusive content",
        "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
        "assessor": "ai",
        "pageCount": 100,
        "pages": {},
        "criteria": null
      },
      {
        "guideline": "4.4",
        "title": "Verify Error Pages and Redirects Are Configured",
        "urgency": "investigate",
        "detail": "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.",
        "wsid": "4.error pages redirection",
        "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
        "assessor": "human",
        "pageCount": 100,
        "pages": {},
        "criteria": null
      },
      {
        "guideline": "4.10",
        "title": "Review CDN Usage and Geographic Distribution",
        "urgency": "investigate",
        "detail": "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.",
        "wsid": "4.content delivery networks",
        "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
        "assessor": "human",
        "pageCount": 100,
        "pages": {},
        "criteria": null
      },
      {
        "guideline": "5.2",
        "title": "Confirm a Sustainability Advocate Is Assigned",
        "urgency": "investigate",
        "detail": "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.",
        "wsid": "5.assign sustainability advocate",
        "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
        "assessor": "human",
        "pageCount": 100,
        "pages": {},
        "criteria": null
      },
      {
        "guideline": "5.8",
        "title": "Check for a Public Sustainability Statement",
        "urgency": "investigate",
        "detail": "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.",
        "wsid": "5.support mandatory disclosures",
        "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
        "assessor": "human",
        "pageCount": 100,
        "pages": {},
        "criteria": null
      },
      {
        "guideline": "2.5",
        "title": "Missing explicit navigation structure",
        "urgency": "medium",
        "detail": "No <nav> or role=\"navigation\" tags found. Proper wayfinding helps users find content efficiently and reduces unnecessary page loads.",
        "wsid": "2.navigation wayfinding",
        "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#ensure-that-navigation-and-wayfinding-are-well-structured",
        "assessor": "script",
        "example": "<nav aria-label=\"Primary\">\n  <ul>\n    <li><a href=\"/\">Home</a></li>\n  </ul>\n</nav>",
        "pageCount": 1,
        "pages": {},
        "criteria": null
      }
    ]
  },
  "siteGuidance": {
    "siteCount": 1,
    "singleSiteScan": true,
    "sites": [
      {
        "origin": "https://www.ca.gov",
        "pageCount": 100,
        "sharedRecommendations": [
          {
            "area": "expected-files",
            "urgency": "medium",
            "title": "Add sitemap.xml at site origin",
            "detail": "sitemap.xml is missing for all sampled pages on https://www.ca.gov."
          },
          {
            "area": "security-headers",
            "urgency": "medium",
            "title": "Enable Strict-Transport-Security site-wide",
            "detail": "HSTS is missing across all sampled HTTPS pages on https://www.ca.gov."
          },
          {
            "area": "offline-support",
            "urgency": "high",
            "title": "Introduce service worker support",
            "detail": "No sampled pages on https://www.ca.gov indicate service worker support for offline resilience."
          },
          {
            "area": "offline-support",
            "urgency": "high",
            "title": "Support offline fallback behavior",
            "detail": "Offline page behavior was not detected across sampled pages on https://www.ca.gov."
          },
          {
            "area": "optimization",
            "urgency": "medium",
            "title": "Fix recurring optimization bloat at shared layer",
            "detail": "Remove unused JavaScript recurs across 100 pages on https://www.ca.gov (est. 21.34 MB aggregate savings)."
          },
          {
            "area": "offline-support",
            "urgency": "high",
            "title": "Prioritize recurring offline/caching improvements",
            "detail": "Add service worker support is needed across 100 pages on https://www.ca.gov."
          }
        ],
        "recurringCompression": [],
        "recurringOptimization": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "pageCount": 100,
            "totalEstimatedSavingsBytes": 22373875,
            "totalEstimatedBlockingMs": 0
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "pageCount": 18,
            "totalEstimatedSavingsBytes": 0,
            "totalEstimatedBlockingMs": 6293
          },
          {
            "id": "offscreen-images",
            "title": "Lazy-load offscreen images",
            "pageCount": 4,
            "totalEstimatedSavingsBytes": 401875,
            "totalEstimatedBlockingMs": 0
          },
          {
            "id": "uses-responsive-images",
            "title": "Right-size images for viewport",
            "pageCount": 4,
            "totalEstimatedSavingsBytes": 191656,
            "totalEstimatedBlockingMs": 0
          },
          {
            "id": "unused-css-rules",
            "title": "Remove unused CSS",
            "pageCount": 2,
            "totalEstimatedSavingsBytes": 98636,
            "totalEstimatedBlockingMs": 0
          }
        ],
        "recurringOfflineOpportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "pageCount": 100
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "pageCount": 100
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "pageCount": 100
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "pageCount": 100
          },
          {
            "id": "uses-long-cache-ttl",
            "title": "Strengthen static asset cache TTL",
            "urgency": "medium",
            "pageCount": 5
          }
        ],
        "recurringDependencies": [],
        "recurringRuntimeSignals": [],
        "pageSpecific": [
          {
            "url": "https://ca.gov/immigration/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 33,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 45,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "Use modern image compression formats",
                "urgency": "high",
                "detail": "Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 223.36 KB."
              },
              {
                "title": "Improve image encoding quality/size",
                "urgency": "medium",
                "detail": "Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 103.84 KB."
              },
              {
                "title": "Serve images in next-gen formats",
                "urgency": "high",
                "detail": "Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 223.36 KB."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.92 KB."
              }
            ]
          },
          {
            "url": "https://ca.gov/LAfires/",
            "securityScore": 59,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 40,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 215.64 KB."
              },
              {
                "title": "Remove unused CSS",
                "urgency": "medium",
                "detail": "Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 32.40 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "medium",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 664 ms."
              }
            ]
          },
          {
            "url": "https://ca.gov/gasfacts/",
            "securityScore": 33,
            "dependencyScore": 4,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 100,
            "languageScore": 0,
            "mediaHintsScore": 50,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.89 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "high",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1329 ms."
              },
              {
                "title": "Right-size images for viewport",
                "urgency": "medium",
                "detail": "Avoid sending larger images than the rendered size needs. Estimated byte savings: 127.56 KB."
              }
            ]
          },
          {
            "url": "https://ca.gov/about-california/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 46,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.21 KB."
              },
              {
                "title": "Lazy-load offscreen images",
                "urgency": "medium",
                "detail": "Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 140.46 KB."
              },
              {
                "title": "Right-size images for viewport",
                "urgency": "low",
                "detail": "Avoid sending larger images than the rendered size needs. Estimated byte savings: 18.17 KB."
              }
            ]
          },
          {
            "url": "https://ca.gov/support/maternal-health-resources.html",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 41,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.24 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/all/?q=vehicle+",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 100,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 212.13 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 35,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.06 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 35,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.07 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/236/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 35,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.88 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/229/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 35,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 219.10 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/287/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 35,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.05 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/215/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 35,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.08 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/175/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 35,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.43 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/171/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 35,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.74 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/178/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 35,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.47 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/299/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 35,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 225.96 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/89/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 35,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.44 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/217/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 35,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.04 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "low",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 91 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/translate/",
            "securityScore": 33,
            "dependencyScore": 4,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 310.95 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.46 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.26 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/support/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.92 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "medium",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 616 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/disaster-recovery/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.33 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "low",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 76 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.27 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/about/about-this-website/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.66 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/support/technical-help/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.65 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/contact/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.25 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/website-accessibility-certification.html",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 219.32 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/legal/conditions-of-use/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.29 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/legal/privacy-policy/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.29 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/legal/accessibility/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.27 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/about/sitemap/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.02 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/all/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.03 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/list/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.07 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/list/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.67 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1221/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 100,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.20 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/43/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 100,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 216.58 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/all/?q=car+",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.96 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/all/?q=dmv+",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.53 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "low",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 44 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/all/?q=drive+",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.88 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/all/?q=driver&",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.97 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/all/?q=id+",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.89 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "low",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 81 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/all/?q=transportation+",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.96 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/all/?q=records+",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.53 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/services/1295/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 100,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 215.28 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/all/?q=birth+",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.41 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "medium",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 417 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/services/all/?q=birth+certificate+",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 30,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.88 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "low",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 83 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 216.79 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1194/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.04 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "medium",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 616 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/services/52/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.05 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "medium",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 866 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/236/services/33/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.66 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/193/services/15/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.09 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/287/services/25/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.04 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/287/services/26/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.05 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "medium",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 616 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/dmv-auto/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.08 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/personal-records/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.08 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/businesses/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.26 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/jobs/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.69 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/assistance/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.05 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "low",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 108 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/taxes/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.17 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/178/services/60/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.79 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/217/services/37/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.06 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/155/services/42/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.46 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/education/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.73 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/health/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.71 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "low",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 229 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/housing/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.67 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/immigration/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.09 KB."
              },
              {
                "title": "Right-size images for viewport",
                "urgency": "low",
                "detail": "Avoid sending larger images than the rendered size needs. Estimated byte savings: 15.34 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "low",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 86 ms."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/safety/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.71 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "low",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 82 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/laws-info/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.71 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "low",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 190 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/topics/recreation/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.70 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/all/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.06 KB."
              },
              {
                "title": "Right-size images for viewport",
                "urgency": "low",
                "detail": "Avoid sending larger images than the rendered size needs. Estimated byte savings: 26.10 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/240/services/74/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.60 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/259/services/49/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.44 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/47/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 219.08 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/48/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.05 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1202/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.61 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1225/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.30 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/46/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.07 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1197/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.08 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1219/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.57 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1222/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 216.48 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1215/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.25 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1121/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 219.33 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/44/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.34 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/45/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.06 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1200/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.87 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1211/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.65 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1218/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.53 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1217/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.06 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/220/services/1220/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 219.32 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/services/53/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.45 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/services/51/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.05 KB."
              },
              {
                "title": "Eliminate render-blocking resources",
                "urgency": "low",
                "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 99 ms."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/services/1297/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.65 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/services/1298/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.28 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/services/1292/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.62 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/services/1299/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.28 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/services/1177/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.81 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/services/1296/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.29 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/services/1210/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.27 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          },
          {
            "url": "https://ca.gov/departments/176/services/1174/",
            "securityScore": 31,
            "dependencyScore": 2,
            "expectedFilesScore": 30,
            "compressionScore": 0,
            "optimizationScore": 100,
            "offlineScore": 90,
            "languageScore": 0,
            "mediaHintsScore": 20,
            "urgency": "high",
            "topRecommendations": [
              {
                "title": "No major compression opportunity detected",
                "urgency": "low",
                "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
              },
              {
                "title": "Remove unused JavaScript",
                "urgency": "high",
                "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.29 KB."
              },
              {
                "title": "Add service worker support",
                "urgency": "high",
                "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
              },
              {
                "title": "Ensure critical routes work offline",
                "urgency": "high",
                "detail": "Provide an offline fallback strategy for key pages and shell assets."
              }
            ]
          }
        ]
      }
    ]
  },
  "crossPagePatterns": {
    "heavyAssetPatterns": [
      {
        "key": "script|www.googletagmanager.com|/gtag",
        "label": "script assets from www.googletagmanager.com/gtag",
        "resourceType": "script",
        "domain": "www.googletagmanager.com",
        "pageCount": 100,
        "totalTransferBytes": 30590179,
        "exampleUrl": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1&bs=ctrl2"
      },
      {
        "key": "script|www.googletagmanager.com|/gtm.js",
        "label": "script assets from www.googletagmanager.com/gtm.js",
        "resourceType": "script",
        "domain": "www.googletagmanager.com",
        "pageCount": 100,
        "totalTransferBytes": 12614980,
        "exampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
      },
      {
        "key": "font|www.ca.gov|/fonts",
        "label": "font assets from www.ca.gov/fonts",
        "resourceType": "font",
        "domain": "www.ca.gov",
        "pageCount": 98,
        "totalTransferBytes": 8711098,
        "exampleUrl": "https://www.ca.gov/fonts/CaGov.woff2"
      },
      {
        "key": "font|cdn.cdt.ca.gov|/cdt",
        "label": "font assets from cdn.cdt.ca.gov/cdt",
        "resourceType": "font",
        "domain": "cdn.cdt.ca.gov",
        "pageCount": 2,
        "totalTransferBytes": 184673,
        "exampleUrl": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.5.1/fonts/CaGov.woff2"
      },
      {
        "key": "stylesheet|cdn.cdt.ca.gov|/cdt",
        "label": "stylesheet assets from cdn.cdt.ca.gov/cdt",
        "resourceType": "stylesheet",
        "domain": "cdn.cdt.ca.gov",
        "pageCount": 2,
        "totalTransferBytes": 126327,
        "exampleUrl": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.5.1/css/cagov.core.min.css"
      }
    ],
    "recurringTargets": [
      {
        "title": "Split JavaScript by route or interaction",
        "urgency": "high",
        "pageCount": 100,
        "totalEstimatedSavingsBytes": 22373875,
        "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand."
      },
      {
        "title": "Modularize heavy script asset from www.googletagmanager.com",
        "urgency": "medium",
        "pageCount": 100,
        "totalEstimatedSavingsBytes": 15636621,
        "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles."
      },
      {
        "title": "Defer non-critical UI modules until after first render",
        "urgency": "high",
        "pageCount": 18,
        "totalEstimatedSavingsBytes": 0,
        "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later."
      },
      {
        "title": "Lazy-load offscreen images and media galleries",
        "urgency": "high",
        "pageCount": 3,
        "totalEstimatedSavingsBytes": 386286,
        "strategy": "Load imagery only when it enters the viewport or when a user opens the relevant section."
      }
    ],
    "recurringOrigins": [
      {
        "domain": "www.googletagmanager.com",
        "pageCount": 100,
        "totalTransferBytes": 43205159
      },
      {
        "domain": "www.ca.gov",
        "pageCount": 98,
        "totalTransferBytes": 8857848
      },
      {
        "domain": "cdn.cdt.ca.gov",
        "pageCount": 2,
        "totalTransferBytes": 311000
      }
    ],
    "designSystemGuidance": [
      "This same heavy script pattern appears on 100 pages. Fix it once in the shared template, CMS block, or design system component to reduce load across the whole site.",
      "These 1 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.googletagmanager.com recur across 100 pages. Review whether that dependency should be deferred, optimized, or loaded conditionally."
    ]
  },
  "results": [
    {
      "url": "https://ca.gov/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/",
      "performanceScore": 0.92,
      "bestPracticesScore": 1,
      "transferBytes": 679573,
      "co2Grams": 0.26033177624220005,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432467,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 3,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 0,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": false
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": false
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "California State Portal | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/",
          "ogTitle": "California State Portal | CA.gov",
          "ogDescription": "CA.gov is the official website for the State of California. You can find and access California services, resources, and more.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 42,
          "tabletSmallTapTargets": 36,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 42,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 36,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 42 small targets on mobile and 36 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "6994",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:20:40 GMT",
            "etag": "\"090a33457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:12 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002040Z-1679bb66d58hnh5bhC1LAS67p80000000ky00000000012kp",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 10,
          "imagesWithLazy": 8,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 10,
            "lazyImages": 8,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1&bs=ctrl",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1&bs=ctrl",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 8/10 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 221994,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 221994,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 216.79 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 679573,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 221994,
          "duplicatedBytes": 0,
          "ratio": 0.3266668922985463,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 221994,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 679573,
        "estimatedDeferrableBytes": 221994,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 221994,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 221994,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156363,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432755,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432467,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 679573,
        "estimatedRedundantBytes": 221994,
        "redundancyRatio": 0.3266668922985463,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 221994,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 221994,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 41,
        "urgency": "medium",
        "totalTransferBytes": 679573,
        "heavyRequestCount": 4,
        "heavyBytes": 521378,
        "heavyRatio": 0.7672141182772123,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1&bs=ctrl2",
            "transferSize": 156363,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1&bs=ctrl2",
            "transferSize": 149574,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126530,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 432467
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 432467
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 221994,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156363,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.82,
          "displayValue": "2.8 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 2.8 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 217 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/translate/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/translate/",
      "performanceScore": 0.87,
      "bestPracticesScore": 0.93,
      "transferBytes": 791133,
      "co2Grams": 0.3030683372262,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "translate.googleapis.com",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 121342,
            "sampleUrl": "https://translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.en_US.UHqZklHZPys.O/am=AABA/d=1/exm=el_conf/ed=1/rs=AN8SPfq7UvxV8TqUR-jlOUNm99iNha0Miw/m=el_main",
            "greenCheck": {
              "hostname": "translate.googleapis.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2025-11-25T09:52:21",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/translate.googleapis.com",
              "error": null
            }
          },
          {
            "hostname": "translate.google.com",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 28379,
            "sampleUrl": "https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit",
            "greenCheck": {
              "hostname": "translate.google.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2025-11-25T09:51:13",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/translate.google.com",
              "error": null
            }
          },
          {
            "hostname": "www.gstatic.com",
            "resourceType": "stylesheet",
            "requestCount": 1,
            "transferBytes": 4187,
            "sampleUrl": "https://www.gstatic.com/_/translate_http/_/ss/k=translate_http.tr.zZZZhVqDDCw.L.W.O/am=AAAO/d=0/rs=AN8SPfr-ZJ2loOUO0Tz5g1Px16wZNQFC_Q/m=el_main_css",
            "greenCheck": {
              "hostname": "www.gstatic.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2025-11-25T09:52:50",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.gstatic.com",
              "error": null
            }
          },
          {
            "hostname": "translate-pa.googleapis.com",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 3259,
            "sampleUrl": "https://translate-pa.googleapis.com/v1/supportedLanguages?client=te&display_language=en-US&key=AIzaSyBWDj0QJvVIx8XOhRegXX5_SrRWxhT5Hs4&callback=callback",
            "greenCheck": {
              "hostname": "translate-pa.googleapis.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2025-11-24T16:49:38",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/translate-pa.googleapis.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 6,
          "greenCount": 5,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Translate this website | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/translate/",
          "ogTitle": "Translate this website | CA.gov",
          "ogDescription": "CA.gov uses Google Translate for automatic translation of its web pages. The official and accurate version of this website is the one currently in English.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/translate/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 29,
          "tabletSmallTapTargets": 28,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 29,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 28,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 29 small targets on mobile and 28 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 33,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 2,
          "externalScriptsWithoutIntegrity": 2,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "5330",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:20:54 GMT",
            "etag": "\"017373857cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:18 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002054Z-1679bb66d58hnh5bhC1LAS67p80000000ky000000000132d",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "2 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 5,
            "lazyImages": 1,
            "totalIframes": 1,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/5 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 318414,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 318414,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 311 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 310.95 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 4,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 2,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "2 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 18,
        "urgency": "high",
        "transferBytes": 791133,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 318414,
          "duplicatedBytes": 0,
          "ratio": 0.4024784707501773,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 318414,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 12,
        "urgency": "medium",
        "transferBytes": 791133,
        "estimatedDeferrableBytes": 318414,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 318414,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 318414,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from translate.googleapis.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 121342,
            "url": "https://translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.en_US.UHqZklHZPys.O/am=AABA/d=1/exm=el_conf/ed=1/rs=AN8SPfq7UvxV8TqUR-jlOUNm99iNha0Miw/m=el_main",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 72,
        "urgency": "high",
        "providerCount": 5,
        "requestCount": 7,
        "transferBytes": 585181,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "translate.googleapis.com",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 121342,
            "sampleUrl": "https://translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.en_US.UHqZklHZPys.O/am=AABA/d=1/exm=el_conf/ed=1/rs=AN8SPfq7UvxV8TqUR-jlOUNm99iNha0Miw/m=el_main",
            "greenCheck": {
              "hostname": "translate.googleapis.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2025-11-25T09:52:21",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/translate.googleapis.com",
              "error": null
            }
          },
          {
            "hostname": "translate.google.com",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 28379,
            "sampleUrl": "https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit",
            "greenCheck": {
              "hostname": "translate.google.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2025-11-25T09:51:13",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/translate.google.com",
              "error": null
            }
          },
          {
            "hostname": "translate-pa.googleapis.com",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 3259,
            "sampleUrl": "https://translate-pa.googleapis.com/v1/supportedLanguages?client=te&display_language=en-US&key=AIzaSyBWDj0QJvVIx8XOhRegXX5_SrRWxhT5Hs4&callback=callback",
            "greenCheck": {
              "hostname": "translate-pa.googleapis.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2025-11-24T16:49:38",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/translate-pa.googleapis.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 5 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 22,
        "urgency": "medium",
        "transferBytes": 791133,
        "estimatedRedundantBytes": 318414,
        "redundancyRatio": 0.4024784707501773,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 318414,
            "displayValue": "Est savings of 311 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 318414,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 46,
        "urgency": "medium",
        "totalTransferBytes": 791133,
        "heavyRequestCount": 5,
        "heavyBytes": 642107,
        "heavyRatio": 0.8116296501346802,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "transferSize": 156278,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl",
            "transferSize": 149485,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126150,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.en_US.UHqZklHZPys.O/am=AABA/d=1/exm=el_conf/ed=1/rs=AN8SPfq7UvxV8TqUR-jlOUNm99iNha0Miw/m=el_main",
            "transferSize": 121342,
            "resourceType": "script",
            "mimeType": "text/javascript",
            "domain": "translate.googleapis.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88852,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 4,
            "transferBytes": 553255
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "domain": "translate.googleapis.com",
            "count": 1,
            "transferBytes": 121342
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 318414,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 311 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 311 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.7,
          "displayValue": "3.3 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.3 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/",
      "performanceScore": 0.83,
      "bestPracticesScore": 1,
      "transferBytes": 627420,
      "co2Grams": 0.240352931988,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431908,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Services | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/services/",
          "ogTitle": "Services | CA.gov",
          "ogDescription": "Find California state services by browsing popular options or searching by topic.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 44,
          "tabletSmallTapTargets": 36,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 44,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 36,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 44 small targets on mobile and 36 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "6648",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:21:05 GMT",
            "etag": "\"017373857cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:18 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002105Z-1679bb66d58hnh5bhC1LAS67p80000000ky00000000013ev",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222678,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222678,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.46 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 627420,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222678,
          "duplicatedBytes": 0,
          "ratio": 0.3549105862101941,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222678,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 627420,
        "estimatedDeferrableBytes": 222678,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222678,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222678,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432196,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431908,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 20,
        "urgency": "medium",
        "transferBytes": 627420,
        "estimatedRedundantBytes": 222678,
        "redundancyRatio": 0.3549105862101941,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222678,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222678,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 44,
        "urgency": "medium",
        "totalTransferBytes": 627420,
        "heavyRequestCount": 4,
        "heavyBytes": 520828,
        "heavyRatio": 0.8301106117114533,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156278,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149480,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126150,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431908
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431908
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222678,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.76,
          "displayValue": "3.1 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.1 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 217 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/",
      "performanceScore": 0.84,
      "bestPracticesScore": 1,
      "transferBytes": 628123,
      "co2Grams": 0.2406222382122,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Departments | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/",
          "ogTitle": "Departments | CA.gov",
          "ogDescription": "Find California state departments by browsing popular options or the directory.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 30,
          "tabletSmallTapTargets": 29,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 30,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 29,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 30 small targets on mobile and 29 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "5661",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:21:15 GMT",
            "etag": "\"0ea53757cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:16 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002115Z-1679bb66d58hnh5bhC1LAS67p80000000ky00000000013wz",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223495,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223495,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.26 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 628123,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223495,
          "duplicatedBytes": 0,
          "ratio": 0.35581406826369993,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223495,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 628123,
        "estimatedDeferrableBytes": 223495,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223495,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223495,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432201,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 20,
        "urgency": "medium",
        "transferBytes": 628123,
        "estimatedRedundantBytes": 223495,
        "redundancyRatio": 0.35581406826369993,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223495,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223495,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 44,
        "urgency": "medium",
        "totalTransferBytes": 628123,
        "heavyRequestCount": 4,
        "heavyBytes": 520756,
        "heavyRatio": 0.8290669184220288,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156278,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149485,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126150,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223495,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.71,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/about-california/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/about-california/",
      "performanceScore": 0.92,
      "bestPracticesScore": 1,
      "transferBytes": 860588,
      "co2Grams": 0.3296752558632,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431898,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "About California | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/about-california/",
          "ogTitle": "About California | CA.gov",
          "ogDescription": "Learn about the California state government, places to visit, and recent milestones.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/about-california/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 49,
          "tabletSmallTapTargets": 39,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 49,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 39,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 49 small targets on mobile and 39 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "9421",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:21:25 GMT",
            "etag": "\"090a33457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:12 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002125Z-1679bb66d58hnh5bhC1LAS67p80000000ky00000000014at",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 46,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 15,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 14
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "high",
            "detail": "14 of 15 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 15,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/15 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 385874,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223446,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "offscreen-images",
            "title": "Lazy-load offscreen images",
            "detail": "Defer below-the-fold imagery until it is likely to be viewed.",
            "estimatedSavingsBytes": 143826,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 140 KiB",
            "urgency": "medium",
            "sourceAuditId": "offscreen-images"
          },
          {
            "id": "uses-responsive-images",
            "title": "Right-size images for viewport",
            "detail": "Avoid sending larger images than the rendered size needs.",
            "estimatedSavingsBytes": 18602,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 18 KiB",
            "urgency": "low",
            "sourceAuditId": "uses-responsive-images"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.21 KB."
          },
          {
            "title": "Lazy-load offscreen images",
            "urgency": "medium",
            "detail": "Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 140.46 KB."
          },
          {
            "title": "Right-size images for viewport",
            "urgency": "low",
            "detail": "Avoid sending larger images than the rendered size needs. Estimated byte savings: 18.17 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 12,
        "urgency": "medium",
        "transferBytes": 860588,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223446,
          "duplicatedBytes": 0,
          "ratio": 0.2596434066010681,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223446,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 860588,
        "estimatedDeferrableBytes": 367272,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 143826,
          "unusedJavascriptSavings": 223446,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Lazy-load offscreen images",
            "area": "image",
            "urgency": "medium",
            "estimatedSavingsBytes": 143826,
            "strategy": "Load below-the-fold images only when they approach the viewport.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223446,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156268,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432185,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431898,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 860588,
        "estimatedRedundantBytes": 223446,
        "redundancyRatio": 0.2596434066010681,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223446,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223446,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 37,
        "urgency": "medium",
        "totalTransferBytes": 860588,
        "heavyRequestCount": 4,
        "heavyBytes": 520809,
        "heavyRatio": 0.605178087540147,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156268,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149480,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126150,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431898
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431898
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Lazy-load offscreen images and media galleries",
            "urgency": "high",
            "estimatedSavingsBytes": 143826,
            "strategy": "Load imagery only when it enters the viewport or when a user opens the relevant section.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223446,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156268,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.76,
          "displayValue": "3.1 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.1 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "offscreen-images",
          "title": "Defer offscreen images",
          "description": "Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. [Learn how to defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/).",
          "score": 0.5,
          "displayValue": "Est savings of 140 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "3",
            "title": "Modularize bandwidth-heavy components",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
            "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Defer offscreen images\n\n- Lighthouse audit: offscreen-images\n- Current value: Est savings of 140 KiB\n- WSG guideline: 3 Modularize bandwidth-heavy components\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components\n\n### Why this matters\nConsider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. [Learn how to defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/support/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/support/",
      "performanceScore": 0.84,
      "bestPracticesScore": 1,
      "transferBytes": 657558,
      "co2Grams": 0.2518982392212,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Get help | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/support/",
          "ogTitle": "Get help | CA.gov",
          "ogDescription": "Get help with essential California services. Get answers to your questions about state services with our FAQs and contact resources.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/support/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 49,
          "tabletSmallTapTargets": 49,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 49,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 49,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 49 small targets on mobile and 49 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8396",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:21:36 GMT",
            "etag": "\"017373857cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:18 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002136Z-1679bb66d58hnh5bhC1LAS67p80000000ky00000000014u0",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223146,
        "totalEstimatedBlockingMs": 616,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223146,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 616,
            "displayValue": "Est savings of 620 ms",
            "urgency": "medium",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.92 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "medium",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 616 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 657558,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223146,
          "duplicatedBytes": 0,
          "ratio": 0.33935561577838,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223146,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 657558,
        "estimatedDeferrableBytes": 223146,
        "renderBlockingMs": 616,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223146,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223146,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 616,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88852,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432200,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 657558,
        "estimatedRedundantBytes": 223146,
        "redundancyRatio": 0.33935561577838,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223146,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223146,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 657558,
        "heavyRequestCount": 4,
        "heavyBytes": 520765,
        "heavyRatio": 0.7919681609835179,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156278,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149485,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126150,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88852,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223146,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 620 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 620 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.66,
          "displayValue": "3.4 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.4 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/disaster-recovery/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/disaster-recovery/",
      "performanceScore": 0.64,
      "bestPracticesScore": 1,
      "transferBytes": 696027,
      "co2Grams": 0.2666349975978,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432377,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Disaster recovery | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/disaster-recovery/",
          "ogTitle": "Disaster recovery | CA.gov",
          "ogDescription": "Browse California state services related to disaster recovery and assistance.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/disaster-recovery/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 59,
          "tabletSmallTapTargets": 70,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 59,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 70,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 59 small targets on mobile and 70 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "15986",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:21:46 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002146Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg0000000016wp",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222548,
        "totalEstimatedBlockingMs": 76,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222548,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 76,
            "displayValue": "Est savings of 80 ms",
            "urgency": "low",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.33 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "low",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 76 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 696027,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222548,
          "duplicatedBytes": 0,
          "ratio": 0.31974046983809534,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222548,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 696027,
        "estimatedDeferrableBytes": 222548,
        "renderBlockingMs": 76,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222548,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222548,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 76,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156363,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432665,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432377,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 696027,
        "estimatedRedundantBytes": 222548,
        "redundancyRatio": 0.31974046983809534,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222548,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222548,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 40,
        "urgency": "medium",
        "totalTransferBytes": 696027,
        "heavyRequestCount": 4,
        "heavyBytes": 521288,
        "heavyRatio": 0.748947957478661,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "transferSize": 156363,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
            "transferSize": 149484,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126530,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 432377
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 432377
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222548,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156363,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 217 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 80 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 80 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.71,
          "displayValue": "3.3 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.3 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1194/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1194/",
      "performanceScore": 0.85,
      "bestPracticesScore": 1,
      "transferBytes": 657905,
      "co2Grams": 0.252031168467,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Apply for a REAL ID/DL | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1194/",
          "ogTitle": "Apply for a REAL ID/DL | CA.gov",
          "ogDescription": "Apply for a REAL ID or DL using the DMV online portal. A California REAL ID or DL can be used for travel, proof of residency, personal identification, and other legal purposes. It serves as a government-issued photo identification that proves your identity, age, and legal presence in the United States, allowing you to access various services like opening bank accounts, voting, applying for jobs, purchasing alcohol, and most importantly, driving a vehicle in California if you choose to get a DL.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1194/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 62,
          "tabletSmallTapTargets": 61,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 62,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 61,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 62 small targets on mobile and 61 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8728",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:21:56 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002156Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg0000000017kp",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223273,
        "totalEstimatedBlockingMs": 616,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223273,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 616,
            "displayValue": "Est savings of 620 ms",
            "urgency": "medium",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.04 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "medium",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 616 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 657905,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223273,
          "duplicatedBytes": 0,
          "ratio": 0.339369665833213,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223273,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 657905,
        "estimatedDeferrableBytes": 223273,
        "renderBlockingMs": 616,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223273,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223273,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 616,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88852,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432200,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 657905,
        "estimatedRedundantBytes": 223273,
        "redundancyRatio": 0.339369665833213,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223273,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223273,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 657905,
        "heavyRequestCount": 4,
        "heavyBytes": 520765,
        "heavyRatio": 0.7915504518129517,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 156278,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 149485,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126150,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88852,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223273,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 620 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 620 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.67,
          "displayValue": "3.4 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.4 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/services/52/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/services/52/",
      "performanceScore": 0.84,
      "bestPracticesScore": 1,
      "transferBytes": 659654,
      "co2Grams": 0.25270117783560003,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Apply for Birth Certificate | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/services/52/",
          "ogTitle": "Apply for Birth Certificate | CA.gov",
          "ogDescription": "Apply for Birth Certificate. An authorized, certified California birth certificate can typically be used for travel, passport, proof of citizenship, social security, driver's license, school registration, personal identification and other legal purposes.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/services/52/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 51,
          "tabletSmallTapTargets": 53,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 51,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 53,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 51 small targets on mobile and 53 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8778",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:22:07 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002207Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg00000000183f",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223280,
        "totalEstimatedBlockingMs": 866,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223280,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 866,
            "displayValue": "Est savings of 870 ms",
            "urgency": "medium",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.05 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "medium",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 866 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 659654,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223280,
          "duplicatedBytes": 0,
          "ratio": 0.3384804761283946,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223280,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 659654,
        "estimatedDeferrableBytes": 223280,
        "renderBlockingMs": 866,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223280,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223280,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 866,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432200,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 659654,
        "estimatedRedundantBytes": 223280,
        "redundancyRatio": 0.3384804761283946,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223280,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223280,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 659654,
        "heavyRequestCount": 4,
        "heavyBytes": 520824,
        "heavyRatio": 0.7895411837114609,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156278,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149485,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126150,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223280,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 870 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 870 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.67,
          "displayValue": "3.4 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.4 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/236/services/33/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/236/services/33/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 657544,
      "co2Grams": 0.25189287608160005,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431908,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Check your refund status | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/236/services/33/",
          "ogTitle": "Check your refund status | CA.gov",
          "ogDescription": "You may be able to get a tax refund if you’ve paid too much tax. Use this service to check your refund status.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/236/services/33/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 46,
          "tabletSmallTapTargets": 44,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 46,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 44,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 46 small targets on mobile and 44 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "6750",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:22:17 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002217Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg0000000018md",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222879,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222879,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.66 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 657544,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222879,
          "duplicatedBytes": 0,
          "ratio": 0.3389567846410278,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222879,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 657544,
        "estimatedDeferrableBytes": 222879,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222879,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222879,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156273,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88852,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432195,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431908,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 657544,
        "estimatedRedundantBytes": 222879,
        "redundancyRatio": 0.3389567846410278,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222879,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222879,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 657544,
        "heavyRequestCount": 4,
        "heavyBytes": 520760,
        "heavyRatio": 0.7919774190016181,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "transferSize": 156273,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl",
            "transferSize": 149485,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126150,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88852,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431908
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431908
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222879,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156273,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/193/services/15/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/193/services/15/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 659611,
      "co2Grams": 0.25268470533540005,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Traffic tickets | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/193/services/15/",
          "ogTitle": "Traffic tickets | CA.gov",
          "ogDescription": "Traffic tickets are handled at the county office in which the ticket was issued. This website can help you find the appropriate county traffic court to pay or challenge your ticket.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/193/services/15/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 42,
          "tabletSmallTapTargets": 42,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 42,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 42,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 42 small targets on mobile and 42 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7595",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:22:27 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002227Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg0000000018zc",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223322,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223322,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.09 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 659611,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223322,
          "duplicatedBytes": 0,
          "ratio": 0.3385662155421908,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223322,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 659611,
        "estimatedDeferrableBytes": 223322,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223322,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223322,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88852,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432200,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 659611,
        "estimatedRedundantBytes": 223322,
        "redundancyRatio": 0.3385662155421908,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223322,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223322,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 659611,
        "heavyRequestCount": 4,
        "heavyBytes": 520765,
        "heavyRatio": 0.7895032071933307,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156278,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149485,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126150,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88852,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223322,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.77,
          "displayValue": "3.0 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.0 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/287/services/25/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/287/services/25/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 670285,
      "co2Grams": 0.256773716199,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Register for Permits, Licenses, or Accounts | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/287/services/25/",
          "ogTitle": "Register for Permits, Licenses, or Accounts | CA.gov",
          "ogDescription": "Register for new business permits, licenses, and accounts or add business locations. Use your online account to pay sales and use tax and most of the special tax and fee programs.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/287/services/25/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 41,
          "tabletSmallTapTargets": 41,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 41,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 41,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 41 small targets on mobile and 41 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8794",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:22:37 GMT",
            "etag": "\"033854657cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:42 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002237Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg0000000019gb",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223273,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223273,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.04 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 670285,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223273,
          "duplicatedBytes": 0,
          "ratio": 0.33310159111422755,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223273,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 670285,
        "estimatedDeferrableBytes": 223273,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223273,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223273,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432201,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 670285,
        "estimatedRedundantBytes": 223273,
        "redundancyRatio": 0.33310159111422755,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223273,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223273,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 670285,
        "heavyRequestCount": 4,
        "heavyBytes": 520824,
        "heavyRatio": 0.7770187308383747,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156278,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149485,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126150,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223273,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/287/services/26/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/287/services/26/",
      "performanceScore": 0.85,
      "bestPracticesScore": 1,
      "transferBytes": 659599,
      "co2Grams": 0.2526801083586,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431905,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Apply for a Seller's Permit | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/287/services/26/",
          "ogTitle": "Apply for a Seller's Permit | CA.gov",
          "ogDescription": "A seller's permit is required if you are engaged in business in California, intend to sell or lease tangible personal property that would ordinarily be subject to sales tax if sold at retail (this includes wholesalers, manufacturers, and retailers), or will make sales for a temporary period, normally lasting no longer than 90 days at one or more locations (for example, firework booths, Christmas tree lots, garage sales).",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/287/services/26/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 41,
          "tabletSmallTapTargets": 41,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 41,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 41,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 41 small targets on mobile and 41 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8807",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:22:47 GMT",
            "etag": "\"033854657cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:42 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002247Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001a24",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223287,
        "totalEstimatedBlockingMs": 616,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223287,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 616,
            "displayValue": "Est savings of 620 ms",
            "urgency": "medium",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.05 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "medium",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 616 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 659599,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223287,
          "duplicatedBytes": 0,
          "ratio": 0.33851931249137734,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223287,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 659599,
        "estimatedDeferrableBytes": 223287,
        "renderBlockingMs": 616,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223287,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223287,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 616,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156273,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432193,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431905,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 659599,
        "estimatedRedundantBytes": 223287,
        "redundancyRatio": 0.33851931249137734,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223287,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223287,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 659599,
        "heavyRequestCount": 4,
        "heavyBytes": 520748,
        "heavyRatio": 0.7894917972889589,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "transferSize": 156273,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
            "transferSize": 149484,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126148,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431905
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431905
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223287,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156273,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 620 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 620 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.66,
          "displayValue": "3.4 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.4 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/dmv-auto/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/dmv-auto/",
      "performanceScore": 0.65,
      "bestPracticesScore": 1,
      "transferBytes": 736913,
      "co2Grams": 0.2822976637182,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 14,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": false
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": false
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "DMV/Auto | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/dmv-auto/",
          "ogTitle": "DMV/Auto | CA.gov",
          "ogDescription": "Browse California state services related to vehicles and the DMV.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/dmv-auto/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 75,
          "tabletSmallTapTargets": 76,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 75,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 76,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 75 small targets on mobile and 76 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "14160",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:22:58 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002258Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001ama",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223309,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223309,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.08 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 736913,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223309,
          "duplicatedBytes": 0,
          "ratio": 0.303033058176474,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223309,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 736913,
        "estimatedDeferrableBytes": 223309,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223309,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223309,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432201,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 17,
        "urgency": "medium",
        "transferBytes": 736913,
        "estimatedRedundantBytes": 223309,
        "redundancyRatio": 0.303033058176474,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223309,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223309,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 38,
        "urgency": "medium",
        "totalTransferBytes": 736913,
        "heavyRequestCount": 4,
        "heavyBytes": 520824,
        "heavyRatio": 0.7067645705802449,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156278,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149485,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126150,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223309,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.64,
          "displayValue": "3.5 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.5 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/personal-records/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/personal-records/",
      "performanceScore": 0.66,
      "bestPracticesScore": 1,
      "transferBytes": 726699,
      "co2Grams": 0.27838487029860004,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432924,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 15,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Personal records | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/personal-records/",
          "ogTitle": "Personal records | CA.gov",
          "ogDescription": "Browse California state services related to personal records. This includes birth certificates, vaccine records, and more.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/personal-records/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 73,
          "tabletSmallTapTargets": 74,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 73,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 74,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 73 small targets on mobile and 74 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "14229",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:23:09 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002309Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001b34",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223309,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223309,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.08 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 726699,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223309,
          "duplicatedBytes": 0,
          "ratio": 0.3072922902054358,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223309,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 726699,
        "estimatedDeferrableBytes": 223309,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223309,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223309,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156608,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 433212,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432924,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 17,
        "urgency": "medium",
        "transferBytes": 726699,
        "estimatedRedundantBytes": 223309,
        "redundancyRatio": 0.3072922902054358,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223309,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223309,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 39,
        "urgency": "medium",
        "totalTransferBytes": 726699,
        "heavyRequestCount": 4,
        "heavyBytes": 521844,
        "heavyRatio": 0.7181019927094987,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "transferSize": 156608,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
            "transferSize": 149846,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126470,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 432924
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 432924
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223309,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156608,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/businesses/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/businesses/",
      "performanceScore": 0.66,
      "bestPracticesScore": 1,
      "transferBytes": 726151,
      "co2Grams": 0.2781749416914,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432924,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 13,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Businesses | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/businesses/",
          "ogTitle": "Businesses | CA.gov",
          "ogDescription": "Browse California state services related to businesses.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/businesses/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 72,
          "tabletSmallTapTargets": 80,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 72,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 80,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 72 small targets on mobile and 80 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "17516",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:23:19 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002319Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001bkp",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223494,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223494,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.26 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 726151,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223494,
          "duplicatedBytes": 0,
          "ratio": 0.3077789605743158,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223494,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 726151,
        "estimatedDeferrableBytes": 223494,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223494,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223494,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156608,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 433211,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432924,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 17,
        "urgency": "medium",
        "transferBytes": 726151,
        "estimatedRedundantBytes": 223494,
        "redundancyRatio": 0.3077789605743158,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223494,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223494,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 39,
        "urgency": "medium",
        "totalTransferBytes": 726151,
        "heavyRequestCount": 4,
        "heavyBytes": 521835,
        "heavyRatio": 0.718631524297288,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2&bs=ctrl2",
            "transferSize": 156608,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2&bs=ctrl2",
            "transferSize": 149846,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126470,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 432924
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 432924
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223494,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156608,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/jobs/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/jobs/",
      "performanceScore": 0.65,
      "bestPracticesScore": 1,
      "transferBytes": 711048,
      "co2Grams": 0.27238926330720004,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431905,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 15,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Jobs and unemployment | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/jobs/",
          "ogTitle": "Jobs and unemployment | CA.gov",
          "ogDescription": "Browse California state services related to employment.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/jobs/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 74,
          "tabletSmallTapTargets": 77,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 74,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 77,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 74 small targets on mobile and 77 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "15662",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:23:31 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002331Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001c4t",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222916,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222916,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.69 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 711048,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222916,
          "duplicatedBytes": 0,
          "ratio": 0.31350344843104827,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222916,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 711048,
        "estimatedDeferrableBytes": 222916,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222916,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222916,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156273,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432193,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431905,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 17,
        "urgency": "medium",
        "transferBytes": 711048,
        "estimatedRedundantBytes": 222916,
        "redundancyRatio": 0.31350344843104827,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222916,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222916,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 40,
        "urgency": "medium",
        "totalTransferBytes": 711048,
        "heavyRequestCount": 4,
        "heavyBytes": 520816,
        "heavyRatio": 0.7324625060474117,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "transferSize": 156273,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
            "transferSize": 149484,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126148,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431905
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431905
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222916,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156273,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/assistance/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/assistance/",
      "performanceScore": 0.85,
      "bestPracticesScore": 1,
      "transferBytes": 726304,
      "co2Grams": 0.27823355314560005,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 14,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Assistance and social programs | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/assistance/",
          "ogTitle": "Assistance and social programs | CA.gov",
          "ogDescription": "Browse California state services that provide social and financial help.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/assistance/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 99,
          "tabletSmallTapTargets": 110,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 99,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 110,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 99 small targets on mobile and 110 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "22727",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:23:42 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002342Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001cqg",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223279,
        "totalEstimatedBlockingMs": 108,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223279,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 108,
            "displayValue": "Est savings of 110 ms",
            "urgency": "low",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.05 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "low",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 108 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 726304,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223279,
          "duplicatedBytes": 0,
          "ratio": 0.3074181059170816,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.25,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223279,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 726304,
        "estimatedDeferrableBytes": 223279,
        "renderBlockingMs": 108,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223279,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223279,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 108,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432201,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431913,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 37,
        "urgency": "medium",
        "transferBytes": 726304,
        "estimatedRedundantBytes": 223279,
        "redundancyRatio": 0.3074181059170816,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223279,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223279,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 39,
        "urgency": "medium",
        "totalTransferBytes": 726304,
        "heavyRequestCount": 4,
        "heavyBytes": 520756,
        "heavyRatio": 0.7169945367229149,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156278,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149485,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126150,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431913
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223279,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156278,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 110 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 110 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0,
          "displayValue": "1,019 elements",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 1,019 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.6,
          "displayValue": "3.6 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.6 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/taxes/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/taxes/",
      "performanceScore": 0.75,
      "bestPracticesScore": 1,
      "transferBytes": 739589,
      "co2Grams": 0.28332278954460005,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431916,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 12,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Taxes | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/taxes/",
          "ogTitle": "Taxes | CA.gov",
          "ogDescription": "Browse California state services related to taxes, refunds, and credits.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/taxes/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 60,
          "tabletSmallTapTargets": 60,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 60,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 60,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 60 small targets on mobile and 60 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "11254",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:23:53 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002353Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001d8u",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222381,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222381,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.17 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 739589,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222381,
          "duplicatedBytes": 0,
          "ratio": 0.30068186519810325,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222381,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 739589,
        "estimatedDeferrableBytes": 222381,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222381,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222381,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156279,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88852,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432204,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431916,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 17,
        "urgency": "medium",
        "transferBytes": 739589,
        "estimatedRedundantBytes": 222381,
        "redundancyRatio": 0.30068186519810325,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222381,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222381,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 38,
        "urgency": "medium",
        "totalTransferBytes": 739589,
        "heavyRequestCount": 4,
        "heavyBytes": 520768,
        "heavyRatio": 0.7041316190478766,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "transferSize": 156279,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl",
            "transferSize": 149486,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126151,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88852,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431916
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431916
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222381,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156279,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.11,
          "displayValue": "6.2 s",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 6.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 217 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/",
      "performanceScore": 0.83,
      "bestPracticesScore": 1,
      "transferBytes": 627186,
      "co2Grams": 0.24026329094039997,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431928,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Topics | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/",
          "ogTitle": "Topics | CA.gov",
          "ogDescription": "Browse California state services sorted by topic.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 45,
          "tabletSmallTapTargets": 37,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 45,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 37,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 45 small targets on mobile and 37 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "6412",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:24:04 GMT",
            "etag": "\"017373857cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:18 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002404Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001dug",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222488,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222488,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.27 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 627186,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222488,
          "duplicatedBytes": 0,
          "ratio": 0.3547400611620795,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222488,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 627186,
        "estimatedDeferrableBytes": 222488,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222488,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222488,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156283,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432216,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431928,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 20,
        "urgency": "medium",
        "transferBytes": 627186,
        "estimatedRedundantBytes": 222488,
        "redundancyRatio": 0.3547400611620795,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222488,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222488,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 44,
        "urgency": "medium",
        "totalTransferBytes": 627186,
        "heavyRequestCount": 4,
        "heavyBytes": 520839,
        "heavyRatio": 0.8304378605389788,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "transferSize": 156283,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl",
            "transferSize": 149490,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126155,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431928
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431928
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222488,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156283,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.77,
          "displayValue": "3.0 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.0 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 217 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/about/about-this-website/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/about/about-this-website/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 627784,
      "co2Grams": 0.24049237361760006,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431910,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "About this website | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/about/about-this-website/",
          "ogTitle": "About this website | CA.gov",
          "ogDescription": "CA.gov is the official website for the State of California. You can find and access California services, resources, and more.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/about/about-this-website/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 29,
          "tabletSmallTapTargets": 29,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 29,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 29,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 29 small targets on mobile and 29 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "5383",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:24:14 GMT",
            "etag": "\"017373857cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:18 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002414Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001e8g",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223903,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223903,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 219 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.66 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 627784,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223903,
          "duplicatedBytes": 0,
          "ratio": 0.3566561110190766,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223903,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 627784,
        "estimatedDeferrableBytes": 223903,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223903,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223903,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156272,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432198,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431910,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 20,
        "urgency": "medium",
        "transferBytes": 627784,
        "estimatedRedundantBytes": 223903,
        "redundancyRatio": 0.3566561110190766,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223903,
            "displayValue": "Est savings of 219 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223903,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 44,
        "urgency": "medium",
        "totalTransferBytes": 627784,
        "heavyRequestCount": 4,
        "heavyBytes": 520753,
        "heavyRatio": 0.8295098314069808,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "transferSize": 156272,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
            "transferSize": 149483,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126155,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431910
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431910
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223903,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156272,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 219 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 219 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/support/technical-help/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/support/technical-help/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 628290,
      "co2Grams": 0.24068621280600003,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431940,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Technical help | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/support/technical-help/",
          "ogTitle": "Technical help | CA.gov",
          "ogDescription": "Refer to this list of actions if you are experiencing problems with the CA.gov website.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/support/technical-help/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 31,
          "tabletSmallTapTargets": 30,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 31,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 30,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 31 small targets on mobile and 30 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "5801",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:24:24 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002423Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001epg",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222870,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222870,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.65 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 628290,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222870,
          "duplicatedBytes": 0,
          "ratio": 0.354724729026405,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222870,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 628290,
        "estimatedDeferrableBytes": 222870,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222870,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222870,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156287,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88834,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432228,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431940,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 20,
        "urgency": "medium",
        "transferBytes": 628290,
        "estimatedRedundantBytes": 222870,
        "redundancyRatio": 0.354724729026405,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222870,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222870,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 44,
        "urgency": "medium",
        "totalTransferBytes": 628290,
        "heavyRequestCount": 4,
        "heavyBytes": 520774,
        "heavyRatio": 0.8288752009422401,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156287,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149494,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126159,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88834,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431940
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88834
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431940
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88834
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222870,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156287,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/contact/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/contact/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 627822,
      "co2Grams": 0.2405069307108,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431940,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Contact | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/contact/",
          "ogTitle": "Contact | CA.gov",
          "ogDescription": "Get contact information for agencies, government, and the CA.gov website.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/contact/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 33,
          "tabletSmallTapTargets": 32,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 33,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 32,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 33 small targets on mobile and 32 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "5326",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:24:33 GMT",
            "etag": "\"090a33457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:12 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002433Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001f1p",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223488,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223488,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.25 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 627822,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223488,
          "duplicatedBytes": 0,
          "ratio": 0.35597350841480546,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223488,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 627822,
        "estimatedDeferrableBytes": 223488,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223488,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223488,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156288,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432228,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431940,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 20,
        "urgency": "medium",
        "transferBytes": 627822,
        "estimatedRedundantBytes": 223488,
        "redundancyRatio": 0.35597350841480546,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223488,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223488,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 44,
        "urgency": "medium",
        "totalTransferBytes": 627822,
        "heavyRequestCount": 4,
        "heavyBytes": 520860,
        "heavyRatio": 0.8296300543784704,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156288,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149495,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126157,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431940
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431940
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223488,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156288,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.76,
          "displayValue": "3.1 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.1 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/website-accessibility-certification.html",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/website-accessibility-certification.html",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 629184,
      "co2Grams": 0.24102868757760004,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432958,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Web Accessibility Certification | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/website-accessibility-certification.html",
          "ogTitle": "Web Accessibility Certification | CA.gov",
          "ogDescription": "The State of California is committed to creating digital products that are usable and accessible by users with all abilities. Learn about our accessibility policies and guidelines.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/website-accessibility-certification.html",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 33,
          "tabletSmallTapTargets": 33,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 33,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 33,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 33 small targets on mobile and 33 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "5657",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:24:43 GMT",
            "etag": "\"090a33457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:12 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002443Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001fde",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 224580,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 224580,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 219 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 219.32 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 629184,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 224580,
          "duplicatedBytes": 0,
          "ratio": 0.35693851083307904,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 224580,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 629184,
        "estimatedDeferrableBytes": 224580,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 224580,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 224580,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156619,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 433246,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432958,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 20,
        "urgency": "medium",
        "transferBytes": 629184,
        "estimatedRedundantBytes": 224580,
        "redundancyRatio": 0.35693851083307904,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 224580,
            "displayValue": "Est savings of 219 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 224580,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 44,
        "urgency": "medium",
        "totalTransferBytes": 629184,
        "heavyRequestCount": 4,
        "heavyBytes": 521801,
        "heavyRatio": 0.8293297350218696,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2&bs=ctrl2",
            "transferSize": 156619,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2&bs=ctrl2",
            "transferSize": 149857,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126482,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 432958
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 432958
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 224580,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156619,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 219 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 219 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/legal/conditions-of-use/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/legal/conditions-of-use/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 632767,
      "co2Grams": 0.24240126823380007,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Conditions of use | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/legal/conditions-of-use/",
          "ogTitle": "Conditions of use | CA.gov",
          "ogDescription": "Learn about the collection, use, security, and access to information that may be obtained through use of this website.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/legal/conditions-of-use/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 41,
          "tabletSmallTapTargets": 43,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 41,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 43,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 41 small targets on mobile and 43 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "11881",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:24:53 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002453Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001fw6",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223531,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223531,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.29 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 632767,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223531,
          "duplicatedBytes": 0,
          "ratio": 0.35325957263890184,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223531,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 632767,
        "estimatedDeferrableBytes": 223531,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223531,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223531,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432238,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 632767,
        "estimatedRedundantBytes": 223531,
        "redundancyRatio": 0.35325957263890184,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223531,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223531,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 44,
        "urgency": "medium",
        "totalTransferBytes": 632767,
        "heavyRequestCount": 4,
        "heavyBytes": 520861,
        "heavyRatio": 0.8231481730241937,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223531,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.77,
          "displayValue": "3.0 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.0 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/legal/privacy-policy/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/legal/privacy-policy/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 631358,
      "co2Grams": 0.2418615065412,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Privacy policy | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/legal/privacy-policy/",
          "ogTitle": "Privacy policy | CA.gov",
          "ogDescription": "We’re committed to protecting the privacy of individuals that visit our website. Our privacy policy tells you how we collect, use, and share data.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/legal/privacy-policy/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 31,
          "tabletSmallTapTargets": 31,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 31,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 31,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 31 small targets on mobile and 31 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "10532",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:25:03 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002503Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001g9y",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223524,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223524,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.29 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 631358,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223524,
          "duplicatedBytes": 0,
          "ratio": 0.35403685389272016,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223524,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 631358,
        "estimatedDeferrableBytes": 223524,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223524,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223524,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432238,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 631358,
        "estimatedRedundantBytes": 223524,
        "redundancyRatio": 0.35403685389272016,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223524,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223524,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 44,
        "urgency": "medium",
        "totalTransferBytes": 631358,
        "heavyRequestCount": 4,
        "heavyBytes": 520870,
        "heavyRatio": 0.8249994456393995,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223524,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/legal/accessibility/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/legal/accessibility/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 628121,
      "co2Grams": 0.24062147204940004,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431945,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Accessibility | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/legal/accessibility/",
          "ogTitle": "Accessibility | CA.gov",
          "ogDescription": "The State of California is committed to creating digital products that are usable and accessible by users with all abilities. Learn about our accessibility policies and guidelines.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/legal/accessibility/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 38,
          "tabletSmallTapTargets": 43,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 38,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 43,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 38 small targets on mobile and 43 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7330",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:25:13 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002513Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001gtq",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223504,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223504,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.27 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 628121,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223504,
          "duplicatedBytes": 0,
          "ratio": 0.35582952966068637,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223504,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 628121,
        "estimatedDeferrableBytes": 223504,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223504,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223504,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88834,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432233,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431945,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 20,
        "urgency": "medium",
        "transferBytes": 628121,
        "estimatedRedundantBytes": 223504,
        "redundancyRatio": 0.35582952966068637,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223504,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223504,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 44,
        "urgency": "medium",
        "totalTransferBytes": 628121,
        "heavyRequestCount": 4,
        "heavyBytes": 520779,
        "heavyRatio": 0.82910617540251,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149492,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88834,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431945
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88834
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431945
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88834
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223504,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.76,
          "displayValue": "3.1 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.1 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/about/sitemap/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/about/sitemap/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 628139,
      "co2Grams": 0.24062836751460004,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Sitemap | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/about/sitemap/",
          "ogTitle": "Sitemap | CA.gov",
          "ogDescription": "A sitemap of all the pages on CA.gov.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/about/sitemap/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 59,
          "tabletSmallTapTargets": 58,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 59,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 58,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 59 small targets on mobile and 58 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "5629",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:25:23 GMT",
            "etag": "\"017373857cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:18 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002523Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001hae",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223252,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223252,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.02 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 628139,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223252,
          "duplicatedBytes": 0,
          "ratio": 0.3554181478940171,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223252,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 628139,
        "estimatedDeferrableBytes": 223252,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223252,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223252,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88852,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432238,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 20,
        "urgency": "medium",
        "transferBytes": 628139,
        "estimatedRedundantBytes": 223252,
        "redundancyRatio": 0.3554181478940171,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223252,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223252,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 44,
        "urgency": "medium",
        "totalTransferBytes": 628139,
        "heavyRequestCount": 4,
        "heavyBytes": 520802,
        "heavyRatio": 0.8291190325708163,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88852,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223252,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/all/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/all/",
      "performanceScore": 0.72,
      "bestPracticesScore": 1,
      "transferBytes": 786643,
      "co2Grams": 0.3013483017402,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "All services | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "All services | CA.gov",
          "ogDescription": "A detailed view of California’s state services.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/all/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 642,
          "tabletSmallTapTargets": 774,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 642,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 774,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 642 small targets on mobile and 774 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:25:33 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002532Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001huc",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223261,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223261,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.03 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 786643,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223261,
          "duplicatedBytes": 0,
          "ratio": 0.28381489443114605,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.25,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223261,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 786643,
        "estimatedDeferrableBytes": 223261,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223261,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223261,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432238,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 36,
        "urgency": "medium",
        "transferBytes": 786643,
        "estimatedRedundantBytes": 223261,
        "redundancyRatio": 0.28381489443114605,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223261,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223261,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 36,
        "urgency": "medium",
        "totalTransferBytes": 786643,
        "heavyRequestCount": 4,
        "heavyBytes": 520861,
        "heavyRatio": 0.6621313607316153,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223261,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0,
          "displayValue": "4,339 elements",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 4,339 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.55,
          "displayValue": "3.8 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.8 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/list/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/list/",
      "performanceScore": 0.78,
      "bestPracticesScore": 1,
      "transferBytes": 693650,
      "co2Grams": 0.26572441311,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Services list | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "Services list | CA.gov",
          "ogDescription": "An alphabetic list view of California state services.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/list/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 271,
          "tabletSmallTapTargets": 302,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 271,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 302,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 271 small targets on mobile and 302 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "14053",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:25:44 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002544Z-15fb756cf88qh4rdhC1PHX9r4n0000000gvg000000001kcf",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223303,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223303,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.07 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 17,
        "urgency": "medium",
        "transferBytes": 693650,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223303,
          "duplicatedBytes": 0,
          "ratio": 0.3219246017443956,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223303,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 693650,
        "estimatedDeferrableBytes": 223303,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223303,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223303,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432238,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 28,
        "urgency": "medium",
        "transferBytes": 693650,
        "estimatedRedundantBytes": 223303,
        "redundancyRatio": 0.3219246017443956,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223303,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223303,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 40,
        "urgency": "medium",
        "totalTransferBytes": 693650,
        "heavyRequestCount": 4,
        "heavyBytes": 520793,
        "heavyRatio": 0.7508008361565631,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223303,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.61,
          "displayValue": "3.6 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.6 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "900 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 900 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/178/services/60/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/178/services/60/",
      "performanceScore": 0.87,
      "bestPracticesScore": 1,
      "transferBytes": 659746,
      "co2Grams": 0.2527364213244,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Food stamps | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/178/services/60/",
          "ogTitle": "Food stamps | CA.gov",
          "ogDescription": "The CalFresh program helps to improve the health and well-being of qualified households and individuals by providing them a means to meet their nutritional needs.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/178/services/60/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 56,
          "tabletSmallTapTargets": 56,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 56,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 56,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 56 small targets on mobile and 56 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8831",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:25:55 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002555Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005mrn",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223018,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223018,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.79 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 659746,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223018,
          "duplicatedBytes": 0,
          "ratio": 0.338036153307485,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223018,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 659746,
        "estimatedDeferrableBytes": 223018,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223018,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223018,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88852,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432238,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 659746,
        "estimatedRedundantBytes": 223018,
        "redundancyRatio": 0.338036153307485,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223018,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223018,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 659746,
        "heavyRequestCount": 4,
        "heavyBytes": 520802,
        "heavyRatio": 0.7893977379173197,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88852,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223018,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.71,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/217/services/37/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/217/services/37/",
      "performanceScore": 0.92,
      "bestPracticesScore": 1,
      "transferBytes": 660576,
      "co2Grams": 0.2530543788864,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 289,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Apply for Medi-Cal | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/217/services/37/",
          "ogTitle": "Apply for Medi-Cal | CA.gov",
          "ogDescription": "Medi-Cal offers free or low-cost health coverage for Californians meeting eligibility requirements, regardless of immigration status. Starting January 1, 2026, Medi-Cal will freeze new enrollments for certain adults who are undocumented and do not have a satisfactory immigration status for federal full-scope Medi-Cal. This group will no longer be able to newly enroll in full-scope Medi-Cal, even if they qualified before under state-funded programs.\n\nWHO: Californians aged 19 and older, who are not pregnant, who are undocumented, and who qualified for full-scope Medi-Cal under state-funded adult expansions. If you're already enrolled in full-scope Medi-Cal, you will stay covered no matter your immigration status if you complete your annual renewal.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/217/services/37/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 50,
          "tabletSmallTapTargets": 50,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 50,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 50,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 50 small targets on mobile and 50 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "9669",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:26:05 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002605Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005nbq",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223290,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223290,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.06 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 660576,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223290,
          "duplicatedBytes": 0,
          "ratio": 0.3380231797703822,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223290,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 660576,
        "estimatedDeferrableBytes": 223290,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223290,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223290,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432239,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 289,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 660576,
        "estimatedRedundantBytes": 223290,
        "redundancyRatio": 0.3380231797703822,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223290,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223290,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 660576,
        "heavyRequestCount": 4,
        "heavyBytes": 520861,
        "heavyRatio": 0.7884951920747953,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223290,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.84,
          "displayValue": "2.7 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 2.7 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/155/services/42/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/155/services/42/",
      "performanceScore": 0.88,
      "bestPracticesScore": 1,
      "transferBytes": 659792,
      "co2Grams": 0.2527540430688,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "View Draw Results | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/155/services/42/",
          "ogTitle": "View Draw Results | CA.gov",
          "ogDescription": "View draw results on the California State Lottery's website. See if you're a winner!",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/155/services/42/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 58,
          "tabletSmallTapTargets": 63,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 58,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 63,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 58 small targets on mobile and 63 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8888",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:26:15 GMT",
            "etag": "\"0acf14257cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:36 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002615Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005p0a",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222678,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222678,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.46 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 659792,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222678,
          "duplicatedBytes": 0,
          "ratio": 0.3374972718674976,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222678,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 659792,
        "estimatedDeferrableBytes": 222678,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222678,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222678,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432237,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 659792,
        "estimatedRedundantBytes": 222678,
        "redundancyRatio": 0.3374972718674976,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222678,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222678,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 659792,
        "heavyRequestCount": 4,
        "heavyBytes": 520793,
        "heavyRatio": 0.7893290612799185,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222678,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 217 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.7,
          "displayValue": "3.3 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.3 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/education/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/education/",
      "performanceScore": 0.66,
      "bestPracticesScore": 1,
      "transferBytes": 733277,
      "co2Grams": 0.2809047797478,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432958,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 11,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Education | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/education/",
          "ogTitle": "Education | CA.gov",
          "ogDescription": "Browse California state services related to education and professional development.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/education/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 58,
          "tabletSmallTapTargets": 65,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 58,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 65,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 58 small targets on mobile and 65 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "13845",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:26:25 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002625Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005pk8",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223976,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223976,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 219 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.73 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 733277,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223976,
          "duplicatedBytes": 0,
          "ratio": 0.30544528193302123,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223976,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 733277,
        "estimatedDeferrableBytes": 223976,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223976,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223976,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156619,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 433245,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432958,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 17,
        "urgency": "medium",
        "transferBytes": 733277,
        "estimatedRedundantBytes": 223976,
        "redundancyRatio": 0.30544528193302123,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223976,
            "displayValue": "Est savings of 219 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223976,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 39,
        "urgency": "medium",
        "totalTransferBytes": 733277,
        "heavyRequestCount": 4,
        "heavyBytes": 521878,
        "heavyRatio": 0.711706490180382,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "transferSize": 156619,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
            "transferSize": 149857,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126482,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 432958
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 432958
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223976,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156619,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.68,
          "displayValue": "3.3 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.3 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 219 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 219 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/health/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/health/",
      "performanceScore": 0.64,
      "bestPracticesScore": 1,
      "transferBytes": 739166,
      "co2Grams": 0.2831607461124,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 14,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Health and wellness | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/health/",
          "ogTitle": "Health and wellness | CA.gov",
          "ogDescription": "Browse California state services that support you and your family’s health.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/health/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 83,
          "tabletSmallTapTargets": 92,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 83,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 92,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 83 small targets on mobile and 92 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "19847",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:26:36 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002636Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005q2b",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222939,
        "totalEstimatedBlockingMs": 229,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222939,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 229,
            "displayValue": "Est savings of 230 ms",
            "urgency": "low",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.71 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "low",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 229 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 739166,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222939,
          "duplicatedBytes": 0,
          "ratio": 0.3016088402334523,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222939,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 739166,
        "estimatedDeferrableBytes": 222939,
        "renderBlockingMs": 229,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222939,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222939,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 229,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432238,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 27,
        "urgency": "medium",
        "transferBytes": 739166,
        "estimatedRedundantBytes": 222939,
        "redundancyRatio": 0.3016088402334523,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222939,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222939,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 38,
        "urgency": "medium",
        "totalTransferBytes": 739166,
        "heavyRequestCount": 4,
        "heavyBytes": 520861,
        "heavyRatio": 0.7046603875178241,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222939,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 230 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 230 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.63,
          "displayValue": "3.5 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.5 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "822 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 822 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/housing/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/housing/",
      "performanceScore": 0.66,
      "bestPracticesScore": 1,
      "transferBytes": 734027,
      "co2Grams": 0.28119209079780005,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431942,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 13,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Housing and real estate | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/housing/",
          "ogTitle": "Housing and real estate | CA.gov",
          "ogDescription": "Browse California state services related to housing and real estate.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/housing/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 59,
          "tabletSmallTapTargets": 56,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 59,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 56,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 59 small targets on mobile and 56 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "11615",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:26:48 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002648Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005qqe",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222899,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222899,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.67 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 734027,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222899,
          "duplicatedBytes": 0,
          "ratio": 0.3036659414435709,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222899,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 734027,
        "estimatedDeferrableBytes": 222899,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222899,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222899,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156285,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432229,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431942,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 17,
        "urgency": "medium",
        "transferBytes": 734027,
        "estimatedRedundantBytes": 222899,
        "redundancyRatio": 0.3036659414435709,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222899,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222899,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 38,
        "urgency": "medium",
        "totalTransferBytes": 734027,
        "heavyRequestCount": 4,
        "heavyBytes": 520862,
        "heavyRatio": 0.7095951511320429,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "transferSize": 156285,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
            "transferSize": 149496,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126161,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431942
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431942
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222899,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156285,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.68,
          "displayValue": "3.3 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.3 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/immigration/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/immigration/",
      "performanceScore": 0.66,
      "bestPracticesScore": 1,
      "transferBytes": 752615,
      "co2Grams": 0.28831280786100005,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431945,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 13,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Immigration | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/immigration/",
          "ogTitle": "Immigration | CA.gov",
          "ogDescription": "Browse California state services related to immigration and family support.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/immigration/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 75,
          "tabletSmallTapTargets": 84,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 75,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 84,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 75 small targets on mobile and 84 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "16634",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:26:58 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002658Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005r8c",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 238010,
        "totalEstimatedBlockingMs": 86,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222300,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "uses-responsive-images",
            "title": "Right-size images for viewport",
            "detail": "Avoid sending larger images than the rendered size needs.",
            "estimatedSavingsBytes": 15710,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 15 KiB",
            "urgency": "low",
            "sourceAuditId": "uses-responsive-images"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 86,
            "displayValue": "Est savings of 90 ms",
            "urgency": "low",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.09 KB."
          },
          {
            "title": "Right-size images for viewport",
            "urgency": "low",
            "detail": "Avoid sending larger images than the rendered size needs. Estimated byte savings: 15.34 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "low",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 86 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 13,
        "urgency": "medium",
        "transferBytes": 752615,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222300,
          "duplicatedBytes": 0,
          "ratio": 0.2953701427688792,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222300,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 752615,
        "estimatedDeferrableBytes": 222300,
        "renderBlockingMs": 86,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222300,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222300,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 86,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432232,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431945,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 752615,
        "estimatedRedundantBytes": 222300,
        "redundancyRatio": 0.2953701427688792,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222300,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222300,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 38,
        "urgency": "medium",
        "totalTransferBytes": 752615,
        "heavyRequestCount": 4,
        "heavyBytes": 520865,
        "heavyRatio": 0.6920736365870996,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126158,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431945
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431945
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222300,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 90 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 90 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.68,
          "displayValue": "3.3 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.3 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 217 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/safety/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/safety/",
      "performanceScore": 0.64,
      "bestPracticesScore": 1,
      "transferBytes": 736320,
      "co2Grams": 0.28207049644800003,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 14,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Safety and emergencies | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/safety/",
          "ogTitle": "Safety and emergencies | CA.gov",
          "ogDescription": "Browse California state services related to public safety and disaster assistance.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/safety/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 77,
          "tabletSmallTapTargets": 82,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 77,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 82,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 77 small targets on mobile and 82 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "18145",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:27:09 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002709Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005rv1",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222939,
        "totalEstimatedBlockingMs": 82,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222939,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 82,
            "displayValue": "Est savings of 80 ms",
            "urgency": "low",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.71 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "low",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 82 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 736320,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222939,
          "duplicatedBytes": 0,
          "ratio": 0.30277460886571056,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222939,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 736320,
        "estimatedDeferrableBytes": 222939,
        "renderBlockingMs": 82,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222939,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222939,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 82,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432237,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 17,
        "urgency": "medium",
        "transferBytes": 736320,
        "estimatedRedundantBytes": 222939,
        "redundancyRatio": 0.30277460886571056,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222939,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222939,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 38,
        "urgency": "medium",
        "totalTransferBytes": 736320,
        "heavyRequestCount": 4,
        "heavyBytes": 520870,
        "heavyRatio": 0.7073962407648848,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222939,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 80 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 80 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.68,
          "displayValue": "3.3 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.3 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/laws-info/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/laws-info/",
      "performanceScore": 0.66,
      "bestPracticesScore": 1,
      "transferBytes": 723534,
      "co2Grams": 0.27717241766760004,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432956,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 13,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "State info and laws | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/laws-info/",
          "ogTitle": "State info and laws | CA.gov",
          "ogDescription": "Browse California state services related to state information, records, and laws.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/laws-info/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 80,
          "tabletSmallTapTargets": 90,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 80,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 90,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 80 small targets on mobile and 90 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "19556",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:27:20 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002720Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005sa2",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223962,
        "totalEstimatedBlockingMs": 190,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223962,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 219 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 190,
            "displayValue": "Est savings of 190 ms",
            "urgency": "low",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.71 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "low",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 190 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 723534,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223962,
          "duplicatedBytes": 0,
          "ratio": 0.3095390126794318,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223962,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 723534,
        "estimatedDeferrableBytes": 223962,
        "renderBlockingMs": 190,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223962,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223962,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 190,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156615,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88910,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 433243,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432956,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 17,
        "urgency": "medium",
        "transferBytes": 723534,
        "estimatedRedundantBytes": 223962,
        "redundancyRatio": 0.3095390126794318,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223962,
            "displayValue": "Est savings of 219 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223962,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 39,
        "urgency": "medium",
        "totalTransferBytes": 723534,
        "heavyRequestCount": 4,
        "heavyBytes": 521866,
        "heavyRatio": 0.72127363745173,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "transferSize": 156615,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
            "transferSize": 149858,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126483,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88910,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 432956
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88910
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 432956
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88910
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223962,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156615,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 190 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 190 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 219 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 219 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/topics/recreation/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/topics/recreation/",
      "performanceScore": 0.66,
      "bestPracticesScore": 1,
      "transferBytes": 754527,
      "co2Grams": 0.2890452594978,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431947,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 8,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Travel and recreation | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/topics/recreation/",
          "ogTitle": "Travel and recreation | CA.gov",
          "ogDescription": "Browse California state services related to travel and recreation within the state.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/topics/recreation/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 47,
          "tabletSmallTapTargets": 46,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 47,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 46,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 47 small targets on mobile and 46 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "9508",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:27:31 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002731Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005sxr",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 5,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 5,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 5/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222920,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222920,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.70 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 13,
        "urgency": "medium",
        "transferBytes": 754527,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222920,
          "duplicatedBytes": 0,
          "ratio": 0.2954433704824347,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222920,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 754527,
        "estimatedDeferrableBytes": 222920,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222920,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222920,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432234,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431947,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 754527,
        "estimatedRedundantBytes": 222920,
        "redundancyRatio": 0.2954433704824347,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222920,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222920,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 38,
        "urgency": "medium",
        "totalTransferBytes": 754527,
        "heavyRequestCount": 4,
        "heavyBytes": 520867,
        "heavyRatio": 0.6903225464430034,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126160,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431947
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431947
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222920,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.67,
          "displayValue": "3.4 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.4 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/all/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/all/",
      "performanceScore": 0.8,
      "bestPracticesScore": 1,
      "transferBytes": 840615,
      "co2Grams": 0.322023971061,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431942,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 3,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": false
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "All departments | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "All departments | CA.gov",
          "ogDescription": "A detailed view of California’s state departments.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/all/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 299,
          "tabletSmallTapTargets": 568,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 299,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 568,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 299 small targets on mobile and 568 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:27:42 GMT",
            "etag": "\"0cbfb3c57cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:26 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002742Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005tmw",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 239,
          "imagesWithLazy": 237,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 239,
            "lazyImages": 237,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 237/239 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 250019,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223293,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "uses-responsive-images",
            "title": "Right-size images for viewport",
            "detail": "Avoid sending larger images than the rendered size needs.",
            "estimatedSavingsBytes": 26726,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 26 KiB",
            "urgency": "low",
            "sourceAuditId": "uses-responsive-images"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.06 KB."
          },
          {
            "title": "Right-size images for viewport",
            "urgency": "low",
            "detail": "Avoid sending larger images than the rendered size needs. Estimated byte savings: 26.10 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 14,
        "urgency": "medium",
        "transferBytes": 840615,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223293,
          "duplicatedBytes": 0,
          "ratio": 0.26563052051176816,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223293,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 8,
        "urgency": "medium",
        "transferBytes": 840615,
        "estimatedDeferrableBytes": 223293,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223293,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223293,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156285,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432229,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431942,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 25,
        "urgency": "medium",
        "transferBytes": 840615,
        "estimatedRedundantBytes": 223293,
        "redundancyRatio": 0.26563052051176816,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223293,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223293,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 34,
        "urgency": "medium",
        "totalTransferBytes": 840615,
        "heavyRequestCount": 4,
        "heavyBytes": 520853,
        "heavyRatio": 0.6196094526031537,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "transferSize": 156285,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
            "transferSize": 149496,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126161,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431942
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431942
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223293,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156285,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.54,
          "displayValue": "3.8 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.8 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "2,933 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 2,933 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/list/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/list/",
      "performanceScore": 0.84,
      "bestPracticesScore": 1,
      "transferBytes": 694352,
      "co2Grams": 0.26599333625280003,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Departments list | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "Departments list | CA.gov",
          "ogDescription": "An alphabetic list view of California state departments.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/list/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 212,
          "tabletSmallTapTargets": 276,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 212,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 276,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 212 small targets on mobile and 276 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "12741",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:27:58 GMT",
            "etag": "\"0cbfb3c57cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:26 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002758Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005v2w",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222891,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222891,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.67 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 17,
        "urgency": "medium",
        "transferBytes": 694352,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222891,
          "duplicatedBytes": 0,
          "ratio": 0.32100577228840704,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222891,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 694352,
        "estimatedDeferrableBytes": 222891,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222891,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222891,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88852,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432237,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 28,
        "urgency": "medium",
        "transferBytes": 694352,
        "estimatedRedundantBytes": 222891,
        "redundancyRatio": 0.32100577228840704,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222891,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222891,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 40,
        "urgency": "medium",
        "totalTransferBytes": 694352,
        "heavyRequestCount": 4,
        "heavyBytes": 520802,
        "heavyRatio": 0.7500547272852962,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88852,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222891,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.67,
          "displayValue": "3.4 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.4 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "846 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 846 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 664790,
      "co2Grams": 0.254668683906,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Department of Motor Vehicles (DMV) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/",
          "ogTitle": "Department of Motor Vehicles (DMV) | CA.gov",
          "ogDescription": "The California Department of Motor Vehicles proudly serves the public by licensing drivers, registering vehicles, securing identities, and regulating the motor vehicle industry in pursuit of public safety.  Our vision is to deliver an outstanding experience to all our customers, powered by our people and technology.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 52,
          "tabletSmallTapTargets": 55,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 52,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 55,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 52 small targets on mobile and 55 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "11231",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:28:08 GMT",
            "etag": "\"071993a57cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:22 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002808Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005vfy",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 35,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 3
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "3 of 4 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223297,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223297,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.06 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 664790,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223297,
          "duplicatedBytes": 0,
          "ratio": 0.335891033258623,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223297,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 664790,
        "estimatedDeferrableBytes": 223297,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223297,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223297,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432238,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 664790,
        "estimatedRedundantBytes": 223297,
        "redundancyRatio": 0.335891033258623,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223297,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223297,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 664790,
        "heavyRequestCount": 4,
        "heavyBytes": 520793,
        "heavyRatio": 0.7833947562388123,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223297,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.76,
          "displayValue": "3.1 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.1 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 662127,
      "co2Grams": 0.2536485381378,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431942,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "California Department of Public Health (CDPH) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/",
          "ogTitle": "California Department of Public Health (CDPH) | CA.gov",
          "ogDescription": "The California Department of Public Health (CDPH) works to protect the public’s health in the Golden State and helps shape positive health outcomes for individuals, families and communities. The Department’s programs and services, implemented in collaboration with local health departments and state, federal and private partners, touch the lives of every Californian and visitor to the state 24 hours a day, 7 days a week.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 41,
          "tabletSmallTapTargets": 47,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 41,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 47,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 41 small targets on mobile and 47 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "9213",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:28:18 GMT",
            "etag": "\"044683957cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:20 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002818Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005vux",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 35,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 3
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "3 of 4 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223305,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223305,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.07 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 662127,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223305,
          "duplicatedBytes": 0,
          "ratio": 0.33725403132631654,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223305,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 662127,
        "estimatedDeferrableBytes": 223305,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223305,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223305,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432229,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431942,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 662127,
        "estimatedRedundantBytes": 223305,
        "redundancyRatio": 0.33725403132631654,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223305,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223305,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 662127,
        "heavyRequestCount": 4,
        "heavyBytes": 520853,
        "heavyRatio": 0.7866360985128231,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149492,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126160,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431942
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431942
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223305,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/236/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/236/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 672006,
      "co2Grams": 0.2574329992884,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Franchise Tax Board (FTB) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/236/",
          "ogTitle": "Franchise Tax Board (FTB) | CA.gov",
          "ogDescription": "Our mission is to help taxpayers file timely and accurate tax returns, and to pay the correct amount to fund services important to all Californians.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/236/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 41,
          "tabletSmallTapTargets": 41,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 41,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 41,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 41 small targets on mobile and 41 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "6060",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:28:29 GMT",
            "etag": "\"071993a57cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:22 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002829Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005w6s",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 35,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 3
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "3 of 4 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223109,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223109,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.88 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 672006,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223109,
          "duplicatedBytes": 0,
          "ratio": 0.33200447615051054,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223109,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 672006,
        "estimatedDeferrableBytes": 223109,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223109,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223109,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432237,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 672006,
        "estimatedRedundantBytes": 223109,
        "redundancyRatio": 0.33200447615051054,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223109,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223109,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 672006,
        "heavyRequestCount": 4,
        "heavyBytes": 520861,
        "heavyRatio": 0.7750838534179755,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223109,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.76,
          "displayValue": "3.1 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.1 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/229/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/229/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 664072,
      "co2Grams": 0.2543936314608001,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432958,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Employment Development Department (EDD) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/229/",
          "ogTitle": "Employment Development Department (EDD) | CA.gov",
          "ogDescription": "The Employment Development Department (EDD) is one of the largest state departments with employees at hundreds of service locations throughout the state. For more than 70 years, we have connected millions of job seekers and employers in an effort to build the economy of the Golden State.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/229/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 46,
          "tabletSmallTapTargets": 47,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 46,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 47,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 46 small targets on mobile and 47 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "9381",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:28:39 GMT",
            "etag": "\"071993a57cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:22 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002839Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005wun",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 35,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 3
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "3 of 4 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 224356,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 224356,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 219 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 219.10 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 664072,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 224356,
          "duplicatedBytes": 0,
          "ratio": 0.3378489079497404,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 224356,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 664072,
        "estimatedDeferrableBytes": 224356,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 224356,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 224356,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156620,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 433246,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432958,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 664072,
        "estimatedRedundantBytes": 224356,
        "redundancyRatio": 0.3378489079497404,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 224356,
            "displayValue": "Est savings of 219 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 224356,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 664072,
        "heavyRequestCount": 4,
        "heavyBytes": 521878,
        "heavyRatio": 0.7858756279439579,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "transferSize": 156620,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
            "transferSize": 149858,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126480,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 432958
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 432958
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 224356,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156620,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.77,
          "displayValue": "3.0 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.0 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 219 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 219 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/287/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/287/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 670644,
      "co2Grams": 0.2569112424216,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "California Department of Tax and Fee Administration (CDTFA) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/287/",
          "ogTitle": "California Department of Tax and Fee Administration (CDTFA) | CA.gov",
          "ogDescription": "The California Department of Tax and Fee Administration (CDTFA) administers California's sales and use, fuel, tobacco, alcohol, and cannabis taxes, as well as a variety of other taxes and fees that fund specific state programs.\n \nCDTFA-administered programs collect over $90 billion annually, which in turn supports local essential services such as transportation, public safety and health, libraries, schools, social services, and natural resource management programs through the distribution of tax dollars going directly to local communities.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/287/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 42,
          "tabletSmallTapTargets": 45,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 42,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 45,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 42 small targets on mobile and 45 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "9383",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:28:49 GMT",
            "etag": "\"09eca3b57cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:24 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002849Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005xmd",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 35,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 3
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "3 of 4 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223280,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223280,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.05 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 670644,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223280,
          "duplicatedBytes": 0,
          "ratio": 0.33293371744174255,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223280,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 670644,
        "estimatedDeferrableBytes": 223280,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223280,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223280,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88852,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432237,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 670644,
        "estimatedRedundantBytes": 223280,
        "redundancyRatio": 0.33293371744174255,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223280,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223280,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 670644,
        "heavyRequestCount": 4,
        "heavyBytes": 520802,
        "heavyRatio": 0.7765699834785669,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88852,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223280,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/215/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/215/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 676037,
      "co2Grams": 0.2589772004118,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431945,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Civil Rights Department (CRD) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/215/",
          "ogTitle": "Civil Rights Department (CRD) | CA.gov",
          "ogDescription": "The Civil Rights Department is the state agency charged with enforcing California’s civil rights laws. The mission of the CRD is to protect the people of California from unlawful discrimination in employment, housing, businesses, and state-funded programs, and from bias-motivated violence and human trafficking.  The CRD is the largest state civil rights agency in the country. It was established by the Legislature in 1959 as the Division of Fair Employment Practices and was initially part of the Department of Industrial Relations. In 1980, it became an independent department, known as the Department of Fair Employment and Housing (DFEH), and was charged with enforcing California's comprehensive employment, housing, public accommodations, and public service non-discrimination laws, as well as the state's bias-related hate violence law. In 2022, the department's name was changed to the Civil Rights Department to better reflect our mission of enforcing a broad range of civil rights laws.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/215/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 38,
          "tabletSmallTapTargets": 38,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 38,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 38,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 38 small targets on mobile and 38 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8311",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:29:00 GMT",
            "etag": "\"071993a57cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:22 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002900Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005y9y",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 35,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 3
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "3 of 4 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223313,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223313,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.08 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 676037,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223313,
          "duplicatedBytes": 0,
          "ratio": 0.3303265945502983,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223313,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 676037,
        "estimatedDeferrableBytes": 223313,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223313,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223313,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432232,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431945,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 676037,
        "estimatedRedundantBytes": 223313,
        "redundancyRatio": 0.3303265945502983,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223313,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223313,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 41,
        "urgency": "medium",
        "totalTransferBytes": 676037,
        "heavyRequestCount": 4,
        "heavyBytes": 520856,
        "heavyRatio": 0.7704548715528884,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149492,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431945
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431945
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223313,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.77,
          "displayValue": "3.0 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.0 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/175/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/175/",
      "performanceScore": 0.88,
      "bestPracticesScore": 1,
      "transferBytes": 672587,
      "co2Grams": 0.2576555695818,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Department of Insurance (CDI) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/175/",
          "ogTitle": "Department of Insurance (CDI) | CA.gov",
          "ogDescription": "The California Department of Insurance (CDI) was created in 1868 as part of a national system of state-based insurance regulation. California is the largest insurance market in the United States and the sixth largest insurance market in the world. More than 1,300 dedicated employees work at CDI to oversee more than 1,300 insurance companies and license more than 390,000 agents, brokers, adjusters, and business entities. CDI annually receives more than 170,000 consumer assistance calls, investigates more than 35,000 consumer complaints and, as a result, recovers more than $63 million a year for consumers. All of CDI's functions, including overseeing insurer solvency, licensing agents and brokers, conducting market conduct reviews, resolving consumer complaints, and investigating and prosecuting insurance fraud, are to protect consumers.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/175/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 38,
          "tabletSmallTapTargets": 37,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 38,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 37,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 38 small targets on mobile and 37 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8938",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:29:10 GMT",
            "etag": "\"044683957cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:20 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002910Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005yrq",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 35,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 3
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "3 of 4 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223673,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223673,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.43 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 672587,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223673,
          "duplicatedBytes": 0,
          "ratio": 0.33255623436075926,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223673,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 672587,
        "estimatedDeferrableBytes": 223673,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223673,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223673,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88852,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432237,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 672587,
        "estimatedRedundantBytes": 223673,
        "redundancyRatio": 0.33255623436075926,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223673,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223673,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 672587,
        "heavyRequestCount": 4,
        "heavyBytes": 520802,
        "heavyRatio": 0.7743265926935846,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88852,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223673,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/171/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/171/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 668051,
      "co2Grams": 0.25591791235140005,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "California Department of Corrections and Rehabilitation (CDCR) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/171/",
          "ogTitle": "California Department of Corrections and Rehabilitation (CDCR) | CA.gov",
          "ogDescription": "The California Department of Corrections and Rehabilitation is responsible for the operation of the California state prison and parole systems. We enhance public safety through safe and secure incarceration of offenders, effective parole supervision, and rehabilitative strategies to successfully reintegrate offenders into our communities.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/171/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 36,
          "tabletSmallTapTargets": 37,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 36,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 37,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 36 small targets on mobile and 37 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7040",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:29:20 GMT",
            "etag": "\"044683957cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:20 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002920Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005z5p",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 35,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 3
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "3 of 4 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222962,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222962,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.74 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 668051,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222962,
          "duplicatedBytes": 0,
          "ratio": 0.3337499681910513,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222962,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 668051,
        "estimatedDeferrableBytes": 222962,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222962,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222962,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432237,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 668051,
        "estimatedRedundantBytes": 222962,
        "redundancyRatio": 0.3337499681910513,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222962,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222962,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 668051,
        "heavyRequestCount": 4,
        "heavyBytes": 520861,
        "heavyRatio": 0.7796725100329166,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222962,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.76,
          "displayValue": "3.1 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.1 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/178/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/178/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 667882,
      "co2Grams": 0.25585317159480003,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Department of Social Services (CDSS) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/178/",
          "ogTitle": "Department of Social Services (CDSS) | CA.gov",
          "ogDescription": "The mission of the California Department of Social Services is to serve, aid, and protect needy and vulnerable children and adults in ways that strengthen and preserve families, encourage personal responsibility, and foster independence. CDSS is comprised of more than 5,800 employees who are responsible for the oversight and administration of programs serving California's most vulnerable residents.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/178/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 49,
          "tabletSmallTapTargets": 51,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 49,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 51,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 49 small targets on mobile and 51 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "10391",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:29:30 GMT",
            "etag": "\"044683957cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:20 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002930Z-1679bb66d58kqmc4hC1LASubgg0000000kf0000000005zq1",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 35,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 3
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "3 of 4 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223715,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223715,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.47 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 667882,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223715,
          "duplicatedBytes": 0,
          "ratio": 0.33496186452097826,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223715,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 667882,
        "estimatedDeferrableBytes": 223715,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223715,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223715,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432237,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 667882,
        "estimatedRedundantBytes": 223715,
        "redundancyRatio": 0.33496186452097826,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223715,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223715,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 667882,
        "heavyRequestCount": 4,
        "heavyBytes": 520793,
        "heavyRatio": 0.7797679829670511,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223715,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/299/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/299/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 678072,
      "co2Grams": 0.25975677106080003,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431942,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Contractors State License Board (CSLB) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/299/",
          "ogTitle": "Contractors State License Board (CSLB) | CA.gov",
          "ogDescription": "The Contractors State License Board (CSLB) protects California consumers by licensing and regulating the state's construction industry. CSLB was established in 1929 and today licenses about 290,000 contractors in 44 different license classifications. The Contractors State License Board protects consumers by regulating the construction industry through policies that promote the health, safety, and general welfare of the public in matters relating to construction.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/299/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 37,
          "tabletSmallTapTargets": 37,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 37,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 37,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 37 small targets on mobile and 37 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7712",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:29:40 GMT",
            "etag": "\"09eca3b57cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:24 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002940Z-1679bb66d58kqmc4hC1LASubgg0000000kf00000000060e2",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 35,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 3
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "3 of 4 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1&bs=ctrl2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1&bs=ctrl2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 231379,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 231379,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 226 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 225.96 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 678072,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 231379,
          "duplicatedBytes": 0,
          "ratio": 0.34123072476079236,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 231379,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 678072,
        "estimatedDeferrableBytes": 231379,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 231379,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 231379,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156285,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432230,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431942,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 678072,
        "estimatedRedundantBytes": 231379,
        "redundancyRatio": 0.34123072476079236,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 231379,
            "displayValue": "Est savings of 226 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 231379,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 678072,
        "heavyRequestCount": 4,
        "heavyBytes": 520853,
        "heavyRatio": 0.7681381918144385,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "transferSize": 156285,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
            "transferSize": 149496,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126161,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431942
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431942
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 231379,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156285,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.77,
          "displayValue": "3.0 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.0 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 226 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 226 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/89/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/89/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 665144,
      "co2Grams": 0.25480429472160004,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Department of Human Resources (CalHR) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/89/",
          "ogTitle": "Department of Human Resources (CalHR) | CA.gov",
          "ogDescription": "The California Department of Human Resources (CalHR) is the California government agency responsible for human resource management of state employees, including issues related to salaries and benefits, job classifications, training and recruitment. It is part of the Government Operations Agency.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/89/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 40,
          "tabletSmallTapTargets": 42,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 40,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 42,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 40 small targets on mobile and 42 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8163",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:29:50 GMT",
            "etag": "\"0cbfb3c57cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:26 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T002950Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006f5m",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 35,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 3
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "3 of 4 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222654,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222654,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.44 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 665144,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222654,
          "duplicatedBytes": 0,
          "ratio": 0.3347455588564281,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222654,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 665144,
        "estimatedDeferrableBytes": 222654,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222654,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222654,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88910,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432238,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 665144,
        "estimatedRedundantBytes": 222654,
        "redundancyRatio": 0.3347455588564281,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222654,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222654,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 665144,
        "heavyRequestCount": 4,
        "heavyBytes": 520860,
        "heavyRatio": 0.7830785514114237,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88910,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88910
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88910
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222654,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.76,
          "displayValue": "3.1 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.1 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 217 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/217/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/217/",
      "performanceScore": 0.86,
      "bestPracticesScore": 1,
      "transferBytes": 671567,
      "co2Grams": 0.2572648265538,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432951,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Department of Health Care Services (DHCS) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/217/",
          "ogTitle": "Department of Health Care Services (DHCS) | CA.gov",
          "ogDescription": "The California Department of Health Care Services (DHCS) is the backbone of the state’s health care safety net, serving nearly 15 million Californians – one-third of the state’s population. DHCS collaborates with federal, state, county, and other partners to ensure equitable access to quality health care, leading to a healthy California for all. As the state single state agency overseeing Medi-Cal, California’s Medicaid program, DHCS provides health care to low-income individuals, children, older adults, and persons with disabilities. Medi-Cal covers physical and mental health, substance use disorder treatment, dental, pharmacy, and long-term services and supports. DHCS is also the single state agency for the Substance Use and Mental Health Services Administration for mental health and substance use disorder services",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/217/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 65,
        "urgency": "high",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": true,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 58,
          "tabletSmallTapTargets": 65,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 424,
            "horizontalOverflowPx": 34,
            "hasHorizontalOverflow": true,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 58,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 65,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Prevent horizontal overflow across breakpoints",
            "urgency": "high",
            "detail": "Use fluid widths, max-width constraints, and avoid fixed pixel containers that exceed mobile or tablet viewports."
          },
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 58 small targets on mobile and 65 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "13268",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:30:01 GMT",
            "etag": "\"071993a57cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:22 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003001Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006fex",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 35,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 3
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "3 of 4 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2&bs=ctrl2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2&bs=ctrl2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222246,
        "totalEstimatedBlockingMs": 91,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222246,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 91,
            "displayValue": "Est savings of 90 ms",
            "urgency": "low",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.04 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "low",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 91 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 671567,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222246,
          "duplicatedBytes": 0,
          "ratio": 0.3309364516124229,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222246,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 671567,
        "estimatedDeferrableBytes": 222246,
        "renderBlockingMs": 91,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222246,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222246,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 91,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156615,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88842,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 433238,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432951,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 671567,
        "estimatedRedundantBytes": 222246,
        "redundancyRatio": 0.3309364516124229,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222246,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222246,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 671567,
        "heavyRequestCount": 4,
        "heavyBytes": 521793,
        "heavyRatio": 0.7769783208525731,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "transferSize": 156615,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
            "transferSize": 149853,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126483,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88842,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 432951
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88842
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 432951
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88842
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222246,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156615,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 217 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 90 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 90 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.79,
          "displayValue": "3.0 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.0 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/LAfires/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/LAfires/",
      "performanceScore": 0.91,
      "bestPracticesScore": 1,
      "transferBytes": 690236,
      "co2Grams": 0.2644165732104001,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "cdn.cdt.ca.gov",
            "resourceType": "stylesheet",
            "requestCount": 1,
            "transferBytes": 58194,
            "sampleUrl": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.5.1/css/cagov.core.min.css",
            "greenCheck": {
              "hostname": "cdn.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:30:21.472850",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/cdn.cdt.ca.gov",
              "error": null
            }
          },
          {
            "hostname": "cdn.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 31072,
            "sampleUrl": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.5.1/js/cagov.core.min.js",
            "greenCheck": {
              "hostname": "cdn.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:30:21.472850",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/cdn.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 3,
          "greenCount": 1,
          "notGreenCount": 3,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "2025 Los Angeles Fires | CA.gov",
          "lang": "en",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/LAfires/",
          "ogTitle": "2025 Los Angeles Fires | CA.gov",
          "ogDescription": "Help and info for people affected by the 2025 Los Angeles County fires.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/LAfires/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 42,
          "tabletSmallTapTargets": 40,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 42,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 40,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 42 small targets on mobile and 40 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 59,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": false,
          "hasXContentTypeOptions": false,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 2,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "9111",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:30:12 GMT",
            "etag": "\"0d1edec54a8dc1:0\"",
            "last-modified": "Sat, 28 Feb 2026 01:52:42 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003012Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006fsw",
            "x-cache": "CONFIG_NOCACHE",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Add a Content-Security-Policy header",
            "urgency": "high",
            "detail": "Add an appropriate CSP to reduce script injection and resource loading risk."
          },
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Set X-Content-Type-Options: nosniff",
            "urgency": "medium",
            "detail": "Prevent MIME type sniffing by adding the nosniff response header."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 40,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 6,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 5
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "5 of 6 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 6,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/6 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 269578,
        "totalEstimatedBlockingMs": 664,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 220814,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 216 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "unused-css-rules",
            "title": "Remove unused CSS",
            "detail": "Trim unused selectors and split CSS so only needed styles are shipped.",
            "estimatedSavingsBytes": 33175,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 32 KiB",
            "urgency": "medium",
            "sourceAuditId": "unused-css-rules"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 664,
            "displayValue": "Est savings of 660 ms",
            "urgency": "medium",
            "sourceAuditId": "render-blocking-resources"
          },
          {
            "id": "offscreen-images",
            "title": "Lazy-load offscreen images",
            "detail": "Defer below-the-fold imagery until it is likely to be viewed.",
            "estimatedSavingsBytes": 15589,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 15 KiB",
            "urgency": "low",
            "sourceAuditId": "offscreen-images"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 215.64 KB."
          },
          {
            "title": "Remove unused CSS",
            "urgency": "medium",
            "detail": "Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 32.40 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "medium",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 664 ms."
          },
          {
            "title": "Lazy-load offscreen images",
            "urgency": "low",
            "detail": "Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 15.22 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 690236,
        "css": {
          "unusedBytes": 33175,
          "ratio": 0.04806327111306857,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 220814,
          "duplicatedBytes": 0,
          "ratio": 0.3199108710643896,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "css",
            "title": "Remove unused CSS selectors and component styles",
            "urgency": "medium",
            "estimatedSavingsBytes": 33175,
            "strategy": "Trim styles that never match rendered markup and split component CSS so only used styles are shipped.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          },
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 220814,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 690236,
        "estimatedDeferrableBytes": 269578,
        "renderBlockingMs": 664,
        "breakdown": {
          "offscreenImageSavings": 15589,
          "unusedJavascriptSavings": 220814,
          "unusedCssSavings": 33175
        },
        "candidates": [
          {
            "title": "Lazy-load offscreen images",
            "area": "image",
            "urgency": "medium",
            "estimatedSavingsBytes": 15589,
            "strategy": "Load below-the-fold images only when they approach the viewport.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 220814,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Inline critical CSS and defer remainder",
            "area": "stylesheet",
            "urgency": "medium",
            "estimatedSavingsBytes": 33175,
            "strategy": "Ship only above-the-fold CSS in initial render path and defer non-critical styles.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 664,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from cdn.cdt.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88962,
            "url": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.5.1/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 463022,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "cdn.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 31072,
            "sampleUrl": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.5.1/js/cagov.core.min.js",
            "greenCheck": {
              "hostname": "cdn.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:30:21.472850",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/cdn.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 20,
        "urgency": "medium",
        "transferBytes": 690236,
        "estimatedRedundantBytes": 253989,
        "redundancyRatio": 0.36797414217745816,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 220814,
            "displayValue": "Est savings of 216 KiB"
          },
          {
            "auditId": "unused-css-rules",
            "title": "Reduce unused CSS",
            "savingsBytes": 33175,
            "displayValue": "Est savings of 32 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 220814,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce unused css",
            "urgency": "medium",
            "estimatedSavingsBytes": 33175,
            "auditId": "unused-css-rules",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 45,
        "urgency": "medium",
        "totalTransferBytes": 690236,
        "heavyRequestCount": 5,
        "heavyBytes": 579106,
        "heavyRatio": 0.8389970966452054,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.5.1/fonts/CaGov.woff2",
            "transferSize": 88962,
            "resourceType": "font",
            "mimeType": "font/woff2",
            "domain": "cdn.cdt.ca.gov"
          },
          {
            "url": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.5.1/css/cagov.core.min.css",
            "transferSize": 58194,
            "resourceType": "stylesheet",
            "mimeType": "text/css",
            "domain": "cdn.cdt.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88962
          },
          {
            "resourceType": "stylesheet",
            "count": 1,
            "transferBytes": 58194
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "cdn.cdt.ca.gov",
            "count": 2,
            "transferBytes": 147156
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 220814,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 216 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 216 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-css-rules",
          "title": "Reduce unused CSS",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 32 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused CSS\n\n- Lighthouse audit: unused-css-rules\n- Current value: Est savings of 32 KiB\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 660 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 660 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.83,
          "displayValue": "2.8 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 2.8 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "offscreen-images",
          "title": "Defer offscreen images",
          "description": "Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. [Learn how to defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/).",
          "score": 0.5,
          "displayValue": "Est savings of 15 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "3",
            "title": "Modularize bandwidth-heavy components",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
            "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Defer offscreen images\n\n- Lighthouse audit: offscreen-images\n- Current value: Est savings of 15 KiB\n- WSG guideline: 3 Modularize bandwidth-heavy components\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components\n\n### Why this matters\nConsider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. [Learn how to defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/gasfacts/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/gasfacts/",
      "performanceScore": 0.78,
      "bestPracticesScore": 0.96,
      "transferBytes": 898709,
      "co2Grams": 0.34427870191260007,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 430511,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PWPX7KD",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "cdn.cdt.ca.gov",
            "resourceType": "stylesheet",
            "requestCount": 1,
            "transferBytes": 68133,
            "sampleUrl": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.4.0/css/cagov.core.min.css",
            "greenCheck": {
              "hostname": "cdn.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:30:21.472850",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/cdn.cdt.ca.gov",
              "error": null
            }
          },
          {
            "hostname": "tableau.cnra.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 61080,
            "sampleUrl": "https://tableau.cnra.ca.gov/javascripts/api/tableau.embedding.3.latest.min.js",
            "greenCheck": {
              "hostname": "tableau.cnra.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:30:35.553499",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/tableau.cnra.ca.gov",
              "error": null
            }
          },
          {
            "hostname": "cdn.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 30814,
            "sampleUrl": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.4.0/js/cagov.core.min.js",
            "greenCheck": {
              "hostname": "cdn.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:30:21.472850",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/cdn.cdt.ca.gov",
              "error": null
            }
          },
          {
            "hostname": "fonts.googleapis.com",
            "resourceType": "stylesheet",
            "requestCount": 1,
            "transferBytes": 999,
            "sampleUrl": "https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,100..900;1,100..900&display=block",
            "greenCheck": {
              "hostname": "fonts.googleapis.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2025-11-25T09:52:29",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/fonts.googleapis.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 6,
          "greenCount": 2,
          "notGreenCount": 5,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 0,
        "urgency": "low",
        "pageElementOccurrences": 0,
        "uniqueElementsAssessed": 0,
        "reusedFromCacheCount": 0,
        "components": [],
        "recommendations": [
          {
            "title": "No major form validation risks detected",
            "urgency": "low",
            "detail": "Continue testing form flows to ensure error handling remains clear across templates."
          }
        ]
      },
      "metadata": {
        "score": 5,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": true,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": false,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "California gas facts",
          "lang": "en",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "California is acting to protect our people from gas price spikes. We’re working toward a future of cleaner air and better roads for all.",
          "robots": "",
          "canonical": "https://www.ca.gov/gasfacts/",
          "ogTitle": "California gas facts",
          "ogDescription": "California is acting to protect our people from gas price spikes. We’re working toward a future of cleaner air and better roads for all.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/gasfacts/",
          "twitterCard": "",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add twitter:card metadata",
            "urgency": "low",
            "detail": "Include twitter card metadata to improve cross-platform machine-readable previews."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 23,
        "urgency": "low",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 8,
          "tabletSmallTapTargets": 10,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 8,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 10,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "medium",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 8 small targets on mobile and 10 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 33,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 4,
          "externalScriptsWithoutIntegrity": 2,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "12386",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:30:26 GMT",
            "etag": "\"0ea53757cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:16 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003026Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006g7g",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "2 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 50,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 5,
          "imagesWithLazy": 0,
          "imagesWithoutLazy": 5
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "5 of 5 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 60,
        "urgency": "high",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 5,
            "lazyImages": 0,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-XFPJTRCEF6&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PWPX7KD"
            ]
          },
          "semantics": {
            "hasNavigation": false,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 0/5 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.5",
            "title": "Missing explicit navigation structure",
            "urgency": "medium",
            "detail": "No <nav> or role=\"navigation\" tags found. Proper wayfinding helps users find content efficiently and reduces unnecessary page loads.",
            "wsid": "2.navigation wayfinding",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#ensure-that-navigation-and-wayfinding-are-well-structured",
            "assessor": "script",
            "example": "<nav aria-label=\"Primary\">\n  <ul>\n    <li><a href=\"/\">Home</a></li>\n  </ul>\n</nav>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 461080,
        "totalEstimatedBlockingMs": 1329,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223120,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 1329,
            "displayValue": "Est savings of 1,330 ms",
            "urgency": "high",
            "sourceAuditId": "render-blocking-resources"
          },
          {
            "id": "uses-responsive-images",
            "title": "Right-size images for viewport",
            "detail": "Avoid sending larger images than the rendered size needs.",
            "estimatedSavingsBytes": 130618,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 128 KiB",
            "urgency": "medium",
            "sourceAuditId": "uses-responsive-images"
          },
          {
            "id": "unused-css-rules",
            "title": "Remove unused CSS",
            "detail": "Trim unused selectors and split CSS so only needed styles are shipped.",
            "estimatedSavingsBytes": 65461,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 64 KiB",
            "urgency": "medium",
            "sourceAuditId": "unused-css-rules"
          },
          {
            "id": "offscreen-images",
            "title": "Lazy-load offscreen images",
            "detail": "Defer below-the-fold imagery until it is likely to be viewed.",
            "estimatedSavingsBytes": 41881,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 41 KiB",
            "urgency": "medium",
            "sourceAuditId": "offscreen-images"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.89 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "high",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1329 ms."
          },
          {
            "title": "Right-size images for viewport",
            "urgency": "medium",
            "detail": "Avoid sending larger images than the rendered size needs. Estimated byte savings: 127.56 KB."
          },
          {
            "title": "Remove unused CSS",
            "urgency": "medium",
            "detail": "Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 63.93 KB."
          },
          {
            "title": "Lazy-load offscreen images",
            "urgency": "medium",
            "detail": "Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 40.90 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 4,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 2,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "2 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 100,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 0.5,
          "cacheSavingsBytes": 61080
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          },
          {
            "id": "uses-long-cache-ttl",
            "title": "Strengthen static asset cache TTL",
            "urgency": "medium",
            "detail": "Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 59.65 KB)."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          },
          {
            "title": "Strengthen static asset cache TTL",
            "urgency": "medium",
            "detail": "Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 59.65 KB)."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 14,
        "urgency": "high",
        "transferBytes": 898709,
        "css": {
          "unusedBytes": 65461,
          "ratio": 0.07283892783982357,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223120,
          "duplicatedBytes": 0,
          "ratio": 0.24826723666948924,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "css",
            "title": "Remove unused CSS selectors and component styles",
            "urgency": "medium",
            "estimatedSavingsBytes": 65461,
            "strategy": "Trim styles that never match rendered markup and split component CSS so only used styles are shipped.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          },
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223120,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 24,
        "urgency": "high",
        "transferBytes": 898709,
        "estimatedDeferrableBytes": 330462,
        "renderBlockingMs": 1329,
        "breakdown": {
          "offscreenImageSavings": 41881,
          "unusedJavascriptSavings": 223120,
          "unusedCssSavings": 65461
        },
        "candidates": [
          {
            "title": "Lazy-load offscreen images",
            "area": "image",
            "urgency": "medium",
            "estimatedSavingsBytes": 41881,
            "strategy": "Load below-the-fold images only when they approach the viewport.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223120,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Inline critical CSS and defer remainder",
            "area": "stylesheet",
            "urgency": "medium",
            "estimatedSavingsBytes": 65461,
            "strategy": "Ship only above-the-fold CSS in initial render path and defer non-critical styles.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "high",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 1329,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 160317,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-XFPJTRCEF6&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from cdn.cdt.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 95711,
            "url": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.4.0/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 84,
        "urgency": "high",
        "providerCount": 4,
        "requestCount": 6,
        "transferBytes": 522693,
        "notGreenCount": 3,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 430511,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PWPX7KD",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "tableau.cnra.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 61080,
            "sampleUrl": "https://tableau.cnra.ca.gov/javascripts/api/tableau.embedding.3.latest.min.js",
            "greenCheck": {
              "hostname": "tableau.cnra.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:30:35.553499",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/tableau.cnra.ca.gov",
              "error": null
            }
          },
          {
            "hostname": "cdn.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 30814,
            "sampleUrl": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.4.0/js/cagov.core.min.js",
            "greenCheck": {
              "hostname": "cdn.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:30:21.472850",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/cdn.cdt.ca.gov",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 4 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "3 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 898709,
        "estimatedRedundantBytes": 288581,
        "redundancyRatio": 0.3211061645093128,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223120,
            "displayValue": "Est savings of 218 KiB"
          },
          {
            "auditId": "unused-css-rules",
            "title": "Reduce unused CSS",
            "savingsBytes": 65461,
            "displayValue": "Est savings of 64 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223120,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce unused css",
            "urgency": "medium",
            "estimatedSavingsBytes": 65461,
            "auditId": "unused-css-rules",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 37,
        "urgency": "medium",
        "totalTransferBytes": 898709,
        "heavyRequestCount": 5,
        "heavyBytes": 594355,
        "heavyRatio": 0.6613431043864032,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-XFPJTRCEF6&cx=c&gtm=4e64a1",
            "transferSize": 160317,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PWPX7KD",
            "transferSize": 120697,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.4.0/fonts/CaGov.woff2",
            "transferSize": 95711,
            "resourceType": "font",
            "mimeType": "font/woff2",
            "domain": "cdn.cdt.ca.gov"
          },
          {
            "url": "https://cdn.cdt.ca.gov/cdt/statetemplate/6.4.0/css/cagov.core.min.css",
            "transferSize": 68133,
            "resourceType": "stylesheet",
            "mimeType": "text/css",
            "domain": "cdn.cdt.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 430511
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 95711
          },
          {
            "resourceType": "stylesheet",
            "count": 1,
            "transferBytes": 68133
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 430511
          },
          {
            "domain": "cdn.cdt.ca.gov",
            "count": 2,
            "transferBytes": 163844
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Lazy-load offscreen images and media galleries",
            "urgency": "medium",
            "estimatedSavingsBytes": 41881,
            "strategy": "Load imagery only when it enters the viewport or when a user opens the relevant section.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223120,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "high",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 160317,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-XFPJTRCEF6&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.42,
          "displayValue": "4.3 s",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 4.3 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-css-rules",
          "title": "Reduce unused CSS",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 64 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused CSS\n\n- Lighthouse audit: unused-css-rules\n- Current value: Est savings of 64 KiB\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 1,330 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 1,330 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "offscreen-images",
          "title": "Defer offscreen images",
          "description": "Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. [Learn how to defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/).",
          "score": 0.5,
          "displayValue": "Est savings of 41 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "3",
            "title": "Modularize bandwidth-heavy components",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
            "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Defer offscreen images\n\n- Lighthouse audit: offscreen-images\n- Current value: Est savings of 41 KiB\n- WSG guideline: 3 Modularize bandwidth-heavy components\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components\n\n### Why this matters\nConsider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. [Learn how to defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/immigration/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/immigration/",
      "performanceScore": 0.87,
      "bestPracticesScore": 1,
      "transferBytes": 1005415,
      "co2Grams": 0.385155785781,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 289,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Immigration and California families | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/immigration/",
          "ogTitle": "Immigration and California families | CA.gov",
          "ogDescription": "Information about immigration policies and how this affects people and families in California. Includes resources for families and groups that engage immigrant families.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/immigration/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 65,
        "urgency": "high",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": true,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 64,
          "tabletSmallTapTargets": 69,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 393,
            "horizontalOverflowPx": 3,
            "hasHorizontalOverflow": true,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 64,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 69,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Prevent horizontal overflow across breakpoints",
            "urgency": "high",
            "detail": "Use fluid widths, max-width constraints, and avoid fixed pixel containers that exceed mobile or tablet viewports."
          },
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 64 small targets on mobile and 69 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "13693",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:30:39 GMT",
            "etag": "\"090a33457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:12 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003039Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006grs",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 45,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 12,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 11
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "high",
            "detail": "11 of 12 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 12,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/12 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 33,
        "urgency": "medium",
        "totalEstimatedSavingsBytes": 335048,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [
          {
            "id": "modern-image-formats",
            "title": "Use modern image compression formats",
            "urgency": "high",
            "estimatedSavingsBytes": 228717,
            "detail": "Prefer AVIF/WebP over legacy formats where possible to reduce transfer size."
          },
          {
            "id": "uses-optimized-images",
            "title": "Improve image encoding quality/size",
            "urgency": "medium",
            "estimatedSavingsBytes": 106331,
            "detail": "Re-encode oversized images and tune compression quality for significant byte savings."
          }
        ],
        "recommendations": [
          {
            "title": "Use modern image compression formats",
            "urgency": "high",
            "detail": "Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 223.36 KB."
          },
          {
            "title": "Improve image encoding quality/size",
            "urgency": "medium",
            "detail": "Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 103.84 KB."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 758782,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "modern-image-formats",
            "title": "Serve images in next-gen formats",
            "detail": "Convert high-byte images to more efficient formats such as AVIF or WebP.",
            "estimatedSavingsBytes": 228717,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 223 KiB",
            "urgency": "high",
            "sourceAuditId": "modern-image-formats"
          },
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223155,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "offscreen-images",
            "title": "Lazy-load offscreen images",
            "detail": "Defer below-the-fold imagery until it is likely to be viewed.",
            "estimatedSavingsBytes": 200579,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 196 KiB",
            "urgency": "medium",
            "sourceAuditId": "offscreen-images"
          },
          {
            "id": "uses-optimized-images",
            "title": "Compress oversized image assets",
            "detail": "Re-encode large images to reduce transfer weight without visible quality loss.",
            "estimatedSavingsBytes": 106331,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 104 KiB",
            "urgency": "medium",
            "sourceAuditId": "uses-optimized-images"
          }
        ],
        "recommendations": [
          {
            "title": "Serve images in next-gen formats",
            "urgency": "high",
            "detail": "Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 223.36 KB."
          },
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.92 KB."
          },
          {
            "title": "Lazy-load offscreen images",
            "urgency": "medium",
            "detail": "Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 195.88 KB."
          },
          {
            "title": "Compress oversized image assets",
            "urgency": "medium",
            "detail": "Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 103.84 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 1005415,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223155,
          "duplicatedBytes": 0,
          "ratio": 0.22195312383443652,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223155,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 14,
        "urgency": "high",
        "transferBytes": 1005415,
        "estimatedDeferrableBytes": 423734,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 200579,
          "unusedJavascriptSavings": 223155,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Lazy-load offscreen images",
            "area": "image",
            "urgency": "medium",
            "estimatedSavingsBytes": 200579,
            "strategy": "Load below-the-fold images only when they approach the viewport.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223155,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy image from www.ca.gov",
            "area": "image",
            "urgency": "medium",
            "estimatedSavingsBytes": 146750,
            "url": "https://www.ca.gov/immigration/images/immigration-8.jpg",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432239,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 289,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 12,
        "urgency": "medium",
        "transferBytes": 1005415,
        "estimatedRedundantBytes": 223155,
        "redundancyRatio": 0.22195312383443652,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223155,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223155,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 40,
        "urgency": "medium",
        "totalTransferBytes": 1005415,
        "heavyRequestCount": 5,
        "heavyBytes": 667611,
        "heavyRatio": 0.6640153568426967,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/immigration/images/immigration-8.jpg",
            "transferSize": 146750,
            "resourceType": "image",
            "mimeType": "image/jpeg",
            "domain": "www.ca.gov"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "image",
            "count": 1,
            "transferBytes": 146750
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 2,
            "transferBytes": 235661
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Lazy-load offscreen images and media galleries",
            "urgency": "high",
            "estimatedSavingsBytes": 200579,
            "strategy": "Load imagery only when it enters the viewport or when a user opens the relevant section.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223155,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy image asset from www.ca.gov",
            "urgency": "medium",
            "estimatedSavingsBytes": 146750,
            "strategy": "Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.",
            "url": "https://www.ca.gov/immigration/images/immigration-8.jpg",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "modern-image-formats",
          "title": "Serve images in next-gen formats",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 223 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "2",
            "categoryName": "User Experience Design",
            "id": "11",
            "title": "Optimize media to reduce resource use",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use",
            "subheading": "Ensure all media - including audio, video, animation, images, and other novel formats, when deemed necessary in the design, are optimized, correctly sized and formatted, use lazy loading where appropriate, with a usage policy in place."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Serve images in next-gen formats\n\n- Lighthouse audit: modern-image-formats\n- Current value: Est savings of 223 KiB\n- WSG guideline: 11 Optimize media to reduce resource use\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use\n\n### Why this matters\nImage 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "offscreen-images",
          "title": "Defer offscreen images",
          "description": "Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. [Learn how to defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/).",
          "score": 0,
          "displayValue": "Est savings of 196 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "3",
            "title": "Modularize bandwidth-heavy components",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
            "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Defer offscreen images\n\n- Lighthouse audit: offscreen-images\n- Current value: Est savings of 196 KiB\n- WSG guideline: 3 Modularize bandwidth-heavy components\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components\n\n### Why this matters\nConsider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. [Learn how to defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.71,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "uses-optimized-images",
          "title": "Efficiently encode images",
          "description": "Optimized images load faster and consume less cellular data. [Learn how to efficiently encode images](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/).",
          "score": 0.5,
          "displayValue": "Est savings of 104 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "2",
            "categoryName": "User Experience Design",
            "id": "11",
            "title": "Optimize media to reduce resource use",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use",
            "subheading": "Ensure all media - including audio, video, animation, images, and other novel formats, when deemed necessary in the design, are optimized, correctly sized and formatted, use lazy loading where appropriate, with a usage policy in place."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Efficiently encode images\n\n- Lighthouse audit: uses-optimized-images\n- Current value: Est savings of 104 KiB\n- WSG guideline: 11 Optimize media to reduce resource use\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use\n\n### Why this matters\nOptimized images load faster and consume less cellular data. [Learn how to efficiently encode images](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/support/maternal-health-resources.html",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/support/maternal-health-resources.html",
      "performanceScore": 0.88,
      "bestPracticesScore": 1,
      "transferBytes": 633738,
      "co2Grams": 0.24277324027320007,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431942,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Maternal health resources | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/support/maternal-health-resources.html",
          "ogTitle": "Maternal health resources | CA.gov",
          "ogDescription": "Access maternal health info and support. Guidance for pregnancy, childbirth, and postpartum care, plus mental health and essential resources.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/support/maternal-health-resources.html",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 41,
          "tabletSmallTapTargets": 39,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 41,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 39,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 41 small targets on mobile and 39 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7435",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:30:50 GMT",
            "etag": "\"017373857cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:18 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003050Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006h63",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 41,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 7,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 6
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "6 of 7 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 7,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/7 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223474,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223474,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.24 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 633738,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223474,
          "duplicatedBytes": 0,
          "ratio": 0.35262837323941437,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223474,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 633738,
        "estimatedDeferrableBytes": 223474,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223474,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223474,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156285,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432230,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431942,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 633738,
        "estimatedRedundantBytes": 223474,
        "redundancyRatio": 0.35262837323941437,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223474,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223474,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 44,
        "urgency": "medium",
        "totalTransferBytes": 633738,
        "heavyRequestCount": 4,
        "heavyBytes": 520785,
        "heavyRatio": 0.8217670393758935,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "transferSize": 156285,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
            "transferSize": 149496,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126161,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431942
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431942
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223474,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156285,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.7,
          "displayValue": "3.3 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.3 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/240/services/74/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/240/services/74/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 658830,
      "co2Grams": 0.252385518762,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Apply for Medical Insurance | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/240/services/74/",
          "ogTitle": "Apply for Medical Insurance | CA.gov",
          "ogDescription": "Apply for Medical Insurance via Covered California",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/240/services/74/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 40,
          "tabletSmallTapTargets": 40,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 40,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 40,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 40 small targets on mobile and 40 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7921",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:31:00 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003100Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006hkk",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222821,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222821,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.60 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658830,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222821,
          "duplicatedBytes": 0,
          "ratio": 0.3382071247514533,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222821,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658830,
        "estimatedDeferrableBytes": 222821,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222821,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222821,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88902,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432238,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658830,
        "estimatedRedundantBytes": 222821,
        "redundancyRatio": 0.3382071247514533,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222821,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222821,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658830,
        "heavyRequestCount": 4,
        "heavyBytes": 520852,
        "heavyRatio": 0.7905711640332104,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88902,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88902
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88902
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222821,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/259/services/49/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/259/services/49/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 660034,
      "co2Grams": 0.25284674876759994,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Find a State Park | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/259/services/49/",
          "ogTitle": "Find a State Park | CA.gov",
          "ogDescription": "Find a State Park near you via the Parks and Recreation website. You can search by name, feature, region, city, county, of alphabetically.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/259/services/49/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 50,
          "tabletSmallTapTargets": 49,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 50,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 49,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 50 small targets on mobile and 49 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "9110",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:31:10 GMT",
            "etag": "\"033854657cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:42 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003110Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006hz0",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222654,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222654,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.44 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 660034,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222654,
          "duplicatedBytes": 0,
          "ratio": 0.3373371674792511,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222654,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 660034,
        "estimatedDeferrableBytes": 222654,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222654,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222654,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88910,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432238,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431950,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 660034,
        "estimatedRedundantBytes": 222654,
        "redundancyRatio": 0.3373371674792511,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222654,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222654,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 660034,
        "heavyRequestCount": 4,
        "heavyBytes": 520860,
        "heavyRatio": 0.7891411654551129,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156290,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149497,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126163,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88910,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88910
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431950
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88910
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222654,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156290,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 217 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/47/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/47/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 659518,
      "co2Grams": 0.25264907876520004,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432967,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Change Home Address | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/47/",
          "ogTitle": "Change Home Address | CA.gov",
          "ogDescription": "To change your address on your driver’s license (DL) or identification (ID) card, or on your vehicle/vessel online – it’s fast and easy from the convenience of your MyDMV account.\nBefore you begin: 1. Be ready to login to your MyDMV account or create one. 2. Have your old and new addresses handy. 3. If changing the address for your vehicle or vessel, you will also need your most recent registration card and the address where your trailer coach or vessel is located  (if applicable). A new driver's license, identification card, or registration card is not issued when changing your address. Temporary mailing addresses are not allowed.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/47/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 64,
          "tabletSmallTapTargets": 61,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 64,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 61,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 64 small targets on mobile and 61 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "9275",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:31:21 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003120Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006kbh",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 224340,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 224340,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 219 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 219.08 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 659518,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 224340,
          "duplicatedBytes": 0,
          "ratio": 0.3401575089686711,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 224340,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 659518,
        "estimatedDeferrableBytes": 224340,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 224340,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 224340,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156622,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 433255,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432967,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 659518,
        "estimatedRedundantBytes": 224340,
        "redundancyRatio": 0.3401575089686711,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 224340,
            "displayValue": "Est savings of 219 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 224340,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 659518,
        "heavyRequestCount": 4,
        "heavyBytes": 521878,
        "heavyRatio": 0.7913021327696894,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "transferSize": 156622,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
            "transferSize": 149860,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126485,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 432967
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 432967
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 224340,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156622,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 219 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 219 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/48/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/48/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 658229,
      "co2Grams": 0.2521552868406,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431942,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Change your Name or Gender | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/48/",
          "ogTitle": "Change your Name or Gender | CA.gov",
          "ogDescription": "There are four steps to changing your name on your driver’s license and/or identification card and there are 3 steps to change your gender. Please select the Launch service button to be taken to our Driver’s License or ID Card Updates page for more information.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/48/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 67,
          "tabletSmallTapTargets": 65,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 67,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 65,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 67 small targets on mobile and 65 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "9008",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:31:31 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003131Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006kr7",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223282,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223282,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.05 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658229,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223282,
          "duplicatedBytes": 0,
          "ratio": 0.3392162909868754,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223282,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658229,
        "estimatedDeferrableBytes": 223282,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223282,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223282,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156284,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432230,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431942,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658229,
        "estimatedRedundantBytes": 223282,
        "redundancyRatio": 0.3392162909868754,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223282,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223282,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658229,
        "heavyRequestCount": 4,
        "heavyBytes": 520853,
        "heavyRatio": 0.7912945190807454,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156284,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149491,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126167,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431942
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431942
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223282,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156284,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1202/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1202/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 659275,
      "co2Grams": 0.252555989985,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431965,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "DMV Paperless Notices | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1202/",
          "ogTitle": "DMV Paperless Notices | CA.gov",
          "ogDescription": "DMV offers paperless notices for driver's license and identification cards or vehicle registrations. Use this service to update your preference.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1202/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 56,
          "tabletSmallTapTargets": 55,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 56,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 55,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 56 small targets on mobile and 55 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8326",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:31:41 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003141Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006m30",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222828,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222828,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.61 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 659275,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222828,
          "duplicatedBytes": 0,
          "ratio": 0.3379894581168708,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222828,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 659275,
        "estimatedDeferrableBytes": 222828,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222828,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222828,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156295,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432253,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431965,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 659275,
        "estimatedRedundantBytes": 222828,
        "redundancyRatio": 0.3379894581168708,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222828,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222828,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 659275,
        "heavyRequestCount": 4,
        "heavyBytes": 520876,
        "heavyRatio": 0.790073944863676,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156295,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149502,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126168,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431965
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431965
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222828,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156295,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1221/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1221/",
      "performanceScore": 0.88,
      "bestPracticesScore": 1,
      "transferBytes": 657891,
      "co2Grams": 0.25202580532740004,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431977,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Fee Calculator | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1221/",
          "ogTitle": "Fee Calculator | CA.gov",
          "ogDescription": "To help people plan for registration-related fees, DMV provides vehicle registration fee calculators.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1221/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 54,
          "tabletSmallTapTargets": 53,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 54,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 53,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 54 small targets on mobile and 53 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "6932",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:31:52 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003152Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006mef",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222409,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222409,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.20 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 100,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 0.5,
          "cacheSavingsBytes": 15
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          },
          {
            "id": "uses-long-cache-ttl",
            "title": "Strengthen static asset cache TTL",
            "urgency": "medium",
            "detail": "Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 15.00 B)."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          },
          {
            "title": "Strengthen static asset cache TTL",
            "urgency": "medium",
            "detail": "Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 15.00 B)."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 657891,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222409,
          "duplicatedBytes": 0,
          "ratio": 0.33806360020124915,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222409,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 657891,
        "estimatedDeferrableBytes": 222409,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222409,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222409,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156301,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88910,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432265,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431977,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 657891,
        "estimatedRedundantBytes": 222409,
        "redundancyRatio": 0.33806360020124915,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222409,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222409,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 657891,
        "heavyRequestCount": 4,
        "heavyBytes": 520887,
        "heavyRatio": 0.7917527371555471,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156301,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149505,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126171,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88910,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431977
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88910
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431977
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88910
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222409,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156301,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 217 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1225/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1225/",
      "performanceScore": 0.88,
      "bestPracticesScore": 1,
      "transferBytes": 658149,
      "co2Grams": 0.25212464032860005,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431983,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Find a DMV Form | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1225/",
          "ogTitle": "Find a DMV Form | CA.gov",
          "ogDescription": "Most DMV transactions can be completed online through our Online Services or our Virtual Field Office, but sometimes, a traditional form is still needed.  The Launch service button will take you to our online forms section.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1225/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 59,
          "tabletSmallTapTargets": 58,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 59,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 58,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 59 small targets on mobile and 58 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7182",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:32:02 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003202Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006mur",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223538,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223538,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.30 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658149,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223538,
          "duplicatedBytes": 0,
          "ratio": 0.3396464934232218,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223538,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658149,
        "estimatedDeferrableBytes": 223538,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223538,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223538,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156301,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88919,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432271,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431983,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658149,
        "estimatedRedundantBytes": 223538,
        "redundancyRatio": 0.3396464934232218,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223538,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223538,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658149,
        "heavyRequestCount": 4,
        "heavyBytes": 520902,
        "heavyRatio": 0.7914651545470707,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 156301,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 149508,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126174,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88919,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431983
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88919
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431983
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88919
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223538,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156301,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/46/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/46/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 658092,
      "co2Grams": 0.25210280468880003,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431985,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Find a Traffic School | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/46/",
          "ogTitle": "Find a Traffic School | CA.gov",
          "ogDescription": "With DMV's Occupational License Status Information System, you can find the latest list of traffic schools in your area.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/46/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 65,
          "tabletSmallTapTargets": 67,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 65,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 67,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 65 small targets on mobile and 67 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8822",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:32:12 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003212Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006n4v",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223308,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223308,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.07 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658092,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223308,
          "duplicatedBytes": 0,
          "ratio": 0.3393264163673164,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223308,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658092,
        "estimatedDeferrableBytes": 223308,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223308,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223308,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156301,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432273,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431985,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658092,
        "estimatedRedundantBytes": 223308,
        "redundancyRatio": 0.3393264163673164,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223308,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223308,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658092,
        "heavyRequestCount": 4,
        "heavyBytes": 520905,
        "heavyRatio": 0.7915382651665724,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156301,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149508,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126176,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431985
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431985
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223308,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156301,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1197/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1197/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 659133,
      "co2Grams": 0.2525015924262,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Get Your Vehicle Registration Status | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1197/",
          "ogTitle": "Get Your Vehicle Registration Status | CA.gov",
          "ogDescription": "Use this service to check your vehicle registration status.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1197/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 56,
          "tabletSmallTapTargets": 55,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 56,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 55,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 56 small targets on mobile and 55 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8178",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:32:22 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003222Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006nkr",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223315,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223315,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.08 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 659133,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223315,
          "duplicatedBytes": 0,
          "ratio": 0.3388011220800658,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223315,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 659133,
        "estimatedDeferrableBytes": 223315,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223315,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223315,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432275,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 659133,
        "estimatedRedundantBytes": 223315,
        "redundancyRatio": 0.3388011220800658,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223315,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223315,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 659133,
        "heavyRequestCount": 4,
        "heavyBytes": 520898,
        "heavyRatio": 0.7902775312417979,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156302,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126176,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223315,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1219/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1219/",
      "performanceScore": 0.88,
      "bestPracticesScore": 1,
      "transferBytes": 657653,
      "co2Grams": 0.2519346319542,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Mobile Driver License (DMV Wallet) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1219/",
          "ogTitle": "Mobile Driver License (DMV Wallet) | CA.gov",
          "ogDescription": "Be among the first to carry your driver’s license on your phone by joining this voluntary pilot. The pilot is limited to 1.5 million participants, so sign up today.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1219/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 59,
          "tabletSmallTapTargets": 59,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 59,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 59,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 59 small targets on mobile and 59 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8377",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:32:32 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003232Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006ny4",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222793,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222793,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.57 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 657653,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222793,
          "duplicatedBytes": 0,
          "ratio": 0.33876983758912377,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222793,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 657653,
        "estimatedDeferrableBytes": 222793,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222793,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222793,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432275,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 657653,
        "estimatedRedundantBytes": 222793,
        "redundancyRatio": 0.33876983758912377,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222793,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222793,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 657653,
        "heavyRequestCount": 4,
        "heavyBytes": 520898,
        "heavyRatio": 0.7920559930540878,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156302,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126176,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222793,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1222/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1222/",
      "performanceScore": 0.91,
      "bestPracticesScore": 1,
      "transferBytes": 658063,
      "co2Grams": 0.25209169532819997,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "New Registration for Your Vehicle | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1222/",
          "ogTitle": "New Registration for Your Vehicle | CA.gov",
          "ogDescription": "New Registration for Your Vehicle: If you need to register a vehicle for use on California roadways, waterways, or trailways, the launch service button will take you to the New Registration page that provides for all your registration needs.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1222/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 55,
          "tabletSmallTapTargets": 54,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 55,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 54,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 55 small targets on mobile and 54 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7077",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:32:42 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003242Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006p8h",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 221675,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 221675,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 216 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 216.48 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658063,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 221675,
          "duplicatedBytes": 0,
          "ratio": 0.33685984472611286,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 221675,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658063,
        "estimatedDeferrableBytes": 221675,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 221675,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 221675,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432275,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658063,
        "estimatedRedundantBytes": 221675,
        "redundancyRatio": 0.33685984472611286,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 221675,
            "displayValue": "Est savings of 216 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 221675,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658063,
        "heavyRequestCount": 4,
        "heavyBytes": 520898,
        "heavyRatio": 0.7915625099724495,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156302,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126176,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 221675,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 216 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 216 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1215/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1215/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 658208,
      "co2Grams": 0.2521472421312,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Online Appointment Scheduler | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1215/",
          "ogTitle": "Online Appointment Scheduler | CA.gov",
          "ogDescription": "DMV offices do not provide services for vehicle registration renewal (with no changes), driver’s license/ID Card renewal (with no in-office requirements), driver’s license and vehicle records, or replacement driver’s licenses. These services must be done online, at a DMV kiosk, with a DMV business partner, or by mail. Use the “Get in Line” option (when available) for same day visits.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1215/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 54,
          "tabletSmallTapTargets": 53,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 54,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 53,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 54 small targets on mobile and 53 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7254",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:32:52 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003252Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006pnq",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223489,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223489,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.25 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658208,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223489,
          "duplicatedBytes": 0,
          "ratio": 0.3395416038699013,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223489,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658208,
        "estimatedDeferrableBytes": 223489,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223489,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223489,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88910,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432275,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658208,
        "estimatedRedundantBytes": 223489,
        "redundancyRatio": 0.3395416038699013,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223489,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223489,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658208,
        "heavyRequestCount": 4,
        "heavyBytes": 520897,
        "heavyRatio": 0.7913866133501872,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156302,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126176,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88910,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88910
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88910
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223489,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1121/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1121/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 659197,
      "co2Grams": 0.25252610963579997,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432995,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Real ID and non-US citizens | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1121/",
          "ogTitle": "Real ID and non-US citizens | CA.gov",
          "ogDescription": "Deferred Action for Childhood Arrivals (DACA) recipients have been authorized to apply for a DL/ID since June 15, 2012, upon presentation of documents issued by the Department of Homeland Security (DHS). For more information select the Launch service button.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1121/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 58,
          "tabletSmallTapTargets": 57,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 58,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 57,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 58 small targets on mobile and 57 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7222",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:33:02 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003302Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006pyr",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 224598,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 224598,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 219 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 219.33 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 659197,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 224598,
          "duplicatedBytes": 0,
          "ratio": 0.3407145360188229,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 224598,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 659197,
        "estimatedDeferrableBytes": 224598,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 224598,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 224598,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156631,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 433283,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432995,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 659197,
        "estimatedRedundantBytes": 224598,
        "redundancyRatio": 0.3407145360188229,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 224598,
            "displayValue": "Est savings of 219 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 224598,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 659197,
        "heavyRequestCount": 4,
        "heavyBytes": 521915,
        "heavyRatio": 0.7917435910661001,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "transferSize": 156631,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2",
            "transferSize": 149869,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126495,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 432995
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 432995
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 224598,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156631,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 219 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 219 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/43/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/43/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 658045,
      "co2Grams": 0.25208479986300003,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431980,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Release of Liability | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/43/",
          "ogTitle": "Release of Liability | CA.gov",
          "ogDescription": "Sold your vehicle? Completing a Notice of Transfer and Release of Liability (NRL) lets DMV know that you are no longer responsible for parking/traffic violations or civil or criminal actions associated with the vehicle after the date of sale.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/43/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 59,
          "tabletSmallTapTargets": 60,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 59,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 60,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 59 small targets on mobile and 60 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8768",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:33:13 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003313Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006q8h",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 221775,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 221775,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 216.58 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 100,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 0.5,
          "cacheSavingsBytes": 18
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          },
          {
            "id": "uses-long-cache-ttl",
            "title": "Strengthen static asset cache TTL",
            "urgency": "medium",
            "detail": "Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 18.00 B)."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          },
          {
            "title": "Strengthen static asset cache TTL",
            "urgency": "medium",
            "detail": "Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 18.00 B)."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658045,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 221775,
          "duplicatedBytes": 0,
          "ratio": 0.3370210243980275,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 221775,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658045,
        "estimatedDeferrableBytes": 221775,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 221775,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 221775,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156298,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432268,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431980,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658045,
        "estimatedRedundantBytes": 221775,
        "redundancyRatio": 0.3370210243980275,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 221775,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 221775,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658045,
        "heavyRequestCount": 4,
        "heavyBytes": 520891,
        "heavyRatio": 0.7915735246069797,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 156298,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126173,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431980
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431980
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 221775,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156298,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 217 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/44/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/44/",
      "performanceScore": 0.88,
      "bestPracticesScore": 1,
      "transferBytes": 657731,
      "co2Grams": 0.25196451230340006,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431982,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Renew Driver’s License or ID Card | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/44/",
          "ogTitle": "Renew Driver’s License or ID Card | CA.gov",
          "ogDescription": "Renew your driver’s license and or ID card online before they expire.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/44/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 62,
          "tabletSmallTapTargets": 61,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 62,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 61,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 62 small targets on mobile and 61 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8529",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:33:23 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003323Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006qk5",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222555,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222555,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 217 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.34 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 657731,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222555,
          "duplicatedBytes": 0,
          "ratio": 0.33836781298129476,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222555,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 657731,
        "estimatedDeferrableBytes": 222555,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222555,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222555,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432270,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431982,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 657731,
        "estimatedRedundantBytes": 222555,
        "redundancyRatio": 0.33836781298129476,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222555,
            "displayValue": "Est savings of 217 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222555,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 657731,
        "heavyRequestCount": 4,
        "heavyBytes": 520825,
        "heavyRatio": 0.791851075895769,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 156302,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126171,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431982
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431982
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222555,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 217 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 217 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/45/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/45/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 668770,
      "co2Grams": 0.25619334787799997,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Renew Your Vehicle Registration | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/45/",
          "ogTitle": "Renew Your Vehicle Registration | CA.gov",
          "ogDescription": "Renew your vehicle registration online before it expires.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/45/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 62,
          "tabletSmallTapTargets": 61,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 62,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 61,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 62 small targets on mobile and 61 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8872",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:33:33 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003333Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006qw6",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223291,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223291,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.06 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 668770,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223291,
          "duplicatedBytes": 0,
          "ratio": 0.33388309882321277,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223291,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 668770,
        "estimatedDeferrableBytes": 223291,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223291,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223291,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432275,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 668770,
        "estimatedRedundantBytes": 223291,
        "redundancyRatio": 0.33388309882321277,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223291,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223291,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 668770,
        "heavyRequestCount": 4,
        "heavyBytes": 520907,
        "heavyRatio": 0.7789030608430402,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156302,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126176,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223291,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1200/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1200/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 658034,
      "co2Grams": 0.2520805859676,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Replacement Driver’s License Request | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1200/",
          "ogTitle": "Replacement Driver’s License Request | CA.gov",
          "ogDescription": "If your driver’s license (DL) has been lost, stolen, damaged or mutilated, a replacement DL can be requested using this system.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1200/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 55,
          "tabletSmallTapTargets": 54,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 55,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 54,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 55 small targets on mobile and 54 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7067",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:33:43 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003343Z-r1d4c48bc77ckpxdhC1SJC8bnc00000009ug000000006r6z",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223098,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223098,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.87 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658034,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223098,
          "duplicatedBytes": 0,
          "ratio": 0.33903719260706894,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223098,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658034,
        "estimatedDeferrableBytes": 223098,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223098,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223098,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432275,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658034,
        "estimatedRedundantBytes": 223098,
        "redundancyRatio": 0.33903719260706894,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223098,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223098,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658034,
        "heavyRequestCount": 4,
        "heavyBytes": 520898,
        "heavyRatio": 0.7915973946634977,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156302,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126176,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223098,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1211/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1211/",
      "performanceScore": 0.93,
      "bestPracticesScore": 1,
      "transferBytes": 658679,
      "co2Grams": 0.2523276734706001,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Report an Issue or Complaint | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1211/",
          "ogTitle": "Report an Issue or Complaint | CA.gov",
          "ogDescription": "The DMV Investigations Division (INV) and the Occupational Licensing Division (OL) protect the programs and interests of the department and public through active fraud/counterfeit detection, investigation, audit, and enforcement services. Use this service if you would like to file a complaint or report an issue.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1211/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 54,
          "tabletSmallTapTargets": 54,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 54,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 54,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 54 small targets on mobile and 54 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7720",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:33:53 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003353Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg0000000063mt",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222875,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222875,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.65 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658679,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222875,
          "duplicatedBytes": 0,
          "ratio": 0.33836663989591287,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222875,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658679,
        "estimatedDeferrableBytes": 222875,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222875,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222875,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432275,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658679,
        "estimatedRedundantBytes": 222875,
        "redundancyRatio": 0.33836663989591287,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222875,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222875,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658679,
        "heavyRequestCount": 4,
        "heavyBytes": 520830,
        "heavyRatio": 0.7907189996948437,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156302,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126176,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222875,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.86,
          "displayValue": "2.7 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 2.7 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1218/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1218/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 659527,
      "co2Grams": 0.25265252649780007,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Request Vehicle Record | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1218/",
          "ogTitle": "Request Vehicle Record | CA.gov",
          "ogDescription": "DMV maintains the public records of statistical information about vehicle registration, driver’s licenses, occupational licenses, and more. DMV’s online system allows you to print your vehicle/vessel registration record.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1218/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 56,
          "tabletSmallTapTargets": 55,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 56,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 55,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 56 small targets on mobile and 55 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8610",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:34:04 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003404Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg0000000064d0",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222753,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222753,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.53 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 659527,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222753,
          "duplicatedBytes": 0,
          "ratio": 0.33774659718252625,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222753,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 659527,
        "estimatedDeferrableBytes": 222753,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222753,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222753,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432275,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 659527,
        "estimatedRedundantBytes": 222753,
        "redundancyRatio": 0.33774659718252625,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222753,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222753,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 659527,
        "heavyRequestCount": 4,
        "heavyBytes": 520830,
        "heavyRatio": 0.7897023169635208,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 156302,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126176,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222753,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1217/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1217/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 658534,
      "co2Grams": 0.2522721266676,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Transfer Title | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1217/",
          "ogTitle": "Transfer Title | CA.gov",
          "ogDescription": "Any change of the current registered owner or lienholder (legal owner) of a vehicle or vessel/boat requires transferring the title to the new owner. Transfer of ownership between the seller and the buyer must be started with DMV within 10 days of the sale of the vehicle or boat.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1217/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 55,
          "tabletSmallTapTargets": 54,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 55,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 54,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 55 small targets on mobile and 54 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7490",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:34:14 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003414Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006517",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223298,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223298,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.06 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658534,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223298,
          "duplicatedBytes": 0,
          "ratio": 0.33908347936477085,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223298,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658534,
        "estimatedDeferrableBytes": 223298,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223298,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223298,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432275,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431987,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658534,
        "estimatedRedundantBytes": 223298,
        "redundancyRatio": 0.33908347936477085,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223298,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223298,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658534,
        "heavyRequestCount": 4,
        "heavyBytes": 520898,
        "heavyRatio": 0.7909963646523945,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156302,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126176,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431987
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223298,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156302,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/220/services/1220/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/220/services/1220/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 658887,
      "co2Grams": 0.25240735440180007,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432998,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "View Driver's Handbooks | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/220/services/1220/",
          "ogTitle": "View Driver's Handbooks | CA.gov",
          "ogDescription": "Preparing for a drive test or knowledge test? Here’s what you need to know to pass your tests. Online handbooks are available in a variety of formats.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/220/services/1220/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 53,
          "tabletSmallTapTargets": 52,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 53,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 52,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 53 small targets on mobile and 52 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "6918",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:34:25 GMT",
            "etag": "\"06544557cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:40 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003424Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg0000000065p1",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2&bs=ctrl2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2&bs=ctrl2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 224585,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 224585,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 219 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 219.32 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658887,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 224585,
          "duplicatedBytes": 0,
          "ratio": 0.3408551086908681,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 224585,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658887,
        "estimatedDeferrableBytes": 224585,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 224585,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 224585,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156632,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2&bs=ctrl",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 433286,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 432998,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658887,
        "estimatedRedundantBytes": 224585,
        "redundancyRatio": 0.3408551086908681,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 224585,
            "displayValue": "Est savings of 219 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 224585,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658887,
        "heavyRequestCount": 4,
        "heavyBytes": 521841,
        "heavyRatio": 0.7920037882064754,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2&bs=ctrl",
            "transferSize": 156632,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64d0h2&bs=ctrl",
            "transferSize": 149870,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126496,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 432998
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 432998
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 224585,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156632,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64d0h2&bs=ctrl",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 219 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 219 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.71,
          "displayValue": "3.3 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.3 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/all/?q=car+",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/all/?q=car+",
      "performanceScore": 0.74,
      "bestPracticesScore": 1,
      "transferBytes": 786765,
      "co2Grams": 0.301395037671,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "All services | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "All services | CA.gov",
          "ogDescription": "A detailed view of California’s state services.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/all/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 62,
          "tabletSmallTapTargets": 62,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 62,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 62,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 62 small targets on mobile and 62 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "cache-control": "public, max-age=8640000, immutable",
            "content-encoding": "gzip",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:34:35 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003435Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006699",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 219092,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 219092,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 214 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.96 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 786765,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 219092,
          "duplicatedBytes": 0,
          "ratio": 0.2784719706646839,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 219092,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 8,
        "urgency": "medium",
        "transferBytes": 786765,
        "estimatedDeferrableBytes": 219092,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 219092,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 219092,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432278,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 25,
        "urgency": "medium",
        "transferBytes": 786765,
        "estimatedRedundantBytes": 219092,
        "redundancyRatio": 0.2784719706646839,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 219092,
            "displayValue": "Est savings of 214 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 219092,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 36,
        "urgency": "medium",
        "totalTransferBytes": 786765,
        "heavyRequestCount": 4,
        "heavyBytes": 520901,
        "heavyRatio": 0.662079528194569,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 219092,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 214 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 214 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.54,
          "displayValue": "3.9 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.9 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "4,339 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 4,339 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/all/?q=dmv+",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/all/?q=dmv+",
      "performanceScore": 0.73,
      "bestPracticesScore": 1,
      "transferBytes": 761401,
      "co2Grams": 0.2916785610414,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "All services | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "All services | CA.gov",
          "ogDescription": "A detailed view of California’s state services.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/all/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 136,
          "tabletSmallTapTargets": 144,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 136,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 144,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 136 small targets on mobile and 144 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=8640000, immutable",
            "content-encoding": "gzip",
            "content-length": "53244",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:34:47 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003446Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg0000000066y6",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 218652,
        "totalEstimatedBlockingMs": 44,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 218652,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 214 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 44,
            "displayValue": "Est savings of 40 ms",
            "urgency": "low",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.53 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "low",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 44 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 761401,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 218652,
          "duplicatedBytes": 0,
          "ratio": 0.2871706236267092,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 218652,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 761401,
        "estimatedDeferrableBytes": 218652,
        "renderBlockingMs": 44,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 218652,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 218652,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 44,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432278,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 26,
        "urgency": "medium",
        "transferBytes": 761401,
        "estimatedRedundantBytes": 218652,
        "redundancyRatio": 0.2871706236267092,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 218652,
            "displayValue": "Est savings of 214 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 218652,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 37,
        "urgency": "medium",
        "totalTransferBytes": 761401,
        "heavyRequestCount": 4,
        "heavyBytes": 520901,
        "heavyRatio": 0.6841349039468033,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 218652,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 214 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 214 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 40 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 40 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.53,
          "displayValue": "3.9 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.9 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "4,339 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 4,339 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/all/?q=drive+",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/all/?q=drive+",
      "performanceScore": 0.6,
      "bestPracticesScore": 1,
      "transferBytes": 786700,
      "co2Grams": 0.30137013738000007,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "All services | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "All services | CA.gov",
          "ogDescription": "A detailed view of California’s state services.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/all/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 59,
          "tabletSmallTapTargets": 58,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 59,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 58,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 59 small targets on mobile and 58 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "cache-control": "public, max-age=8640000, immutable",
            "content-encoding": "gzip",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:34:58 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003458Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg0000000067ph",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 219011,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 219011,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 214 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.88 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 786700,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 219011,
          "duplicatedBytes": 0,
          "ratio": 0.2783920172874031,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 219011,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 8,
        "urgency": "medium",
        "transferBytes": 786700,
        "estimatedDeferrableBytes": 219011,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 219011,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 219011,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88902,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432278,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 25,
        "urgency": "medium",
        "transferBytes": 786700,
        "estimatedRedundantBytes": 219011,
        "redundancyRatio": 0.2783920172874031,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 219011,
            "displayValue": "Est savings of 214 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 219011,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 36,
        "urgency": "medium",
        "totalTransferBytes": 786700,
        "heavyRequestCount": 4,
        "heavyBytes": 520892,
        "heavyRatio": 0.6621227914071438,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88902,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88902
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88902
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 219011,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.64,
          "displayValue": "3.5 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.5 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 214 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 214 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "4,339 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 4,339 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/all/?q=driver&",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/all/?q=driver",
      "performanceScore": 0.58,
      "bestPracticesScore": 1,
      "transferBytes": 769774,
      "co2Grams": 0.2948861016036,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "All services | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "All services | CA.gov",
          "ogDescription": "A detailed view of California’s state services.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/all/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 84,
          "tabletSmallTapTargets": 86,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 84,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 86,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 84 small targets on mobile and 86 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "cache-control": "public, max-age=8640000, immutable",
            "content-encoding": "gzip",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:35:15 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003515Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg0000000068s7",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 219109,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 219109,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 214 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.97 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 769774,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 219109,
          "duplicatedBytes": 0,
          "ratio": 0.28464068674701926,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 219109,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 769774,
        "estimatedDeferrableBytes": 219109,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 219109,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 219109,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432277,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 26,
        "urgency": "medium",
        "transferBytes": 769774,
        "estimatedRedundantBytes": 219109,
        "redundancyRatio": 0.28464068674701926,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 219109,
            "displayValue": "Est savings of 214 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 219109,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 37,
        "urgency": "medium",
        "totalTransferBytes": 769774,
        "heavyRequestCount": 4,
        "heavyBytes": 520910,
        "heavyRatio": 0.6767051108507173,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 219109,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 214 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 214 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.58,
          "displayValue": "3.7 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.7 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "4,339 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 4,339 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/all/?q=id+",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/all/?q=id+",
      "performanceScore": 0.58,
      "bestPracticesScore": 1,
      "transferBytes": 744388,
      "co2Grams": 0.2851611971832,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "All services | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "All services | CA.gov",
          "ogDescription": "A detailed view of California’s state services.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/all/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 123,
          "tabletSmallTapTargets": 137,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 123,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 137,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 123 small targets on mobile and 137 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=8640000, immutable",
            "content-encoding": "gzip",
            "content-length": "53244",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:35:20 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003520Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg0000000068z5",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 219023,
        "totalEstimatedBlockingMs": 81,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 219023,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 214 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 81,
            "displayValue": "Est savings of 80 ms",
            "urgency": "low",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.89 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "low",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 81 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 16,
        "urgency": "medium",
        "transferBytes": 744388,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 219023,
          "duplicatedBytes": 0,
          "ratio": 0.29423230895715674,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 219023,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 744388,
        "estimatedDeferrableBytes": 219023,
        "renderBlockingMs": 81,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 219023,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 219023,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 81,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432277,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 26,
        "urgency": "medium",
        "transferBytes": 744388,
        "estimatedRedundantBytes": 219023,
        "redundancyRatio": 0.29423230895715674,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 219023,
            "displayValue": "Est savings of 214 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 219023,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 38,
        "urgency": "medium",
        "totalTransferBytes": 744388,
        "heavyRequestCount": 4,
        "heavyBytes": 520833,
        "heavyRatio": 0.6996794682343079,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 219023,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 80 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 80 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.58,
          "displayValue": "3.7 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.7 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 214 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 214 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "4,339 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 4,339 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/all/?q=transportation+",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/all/?q=transportation+",
      "performanceScore": 0.75,
      "bestPracticesScore": 1,
      "transferBytes": 769694,
      "co2Grams": 0.29485545509160005,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431982,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "All services | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "All services | CA.gov",
          "ogDescription": "A detailed view of California’s state services.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/all/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 64,
          "tabletSmallTapTargets": 65,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 64,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 65,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 64 small targets on mobile and 65 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "cache-control": "public, max-age=8640000, immutable",
            "content-encoding": "gzip",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:35:31 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003531Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg0000000069p3",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 219099,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 219099,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 214 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.96 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 769694,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 219099,
          "duplicatedBytes": 0,
          "ratio": 0.28465727938635355,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 219099,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 769694,
        "estimatedDeferrableBytes": 219099,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 219099,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 219099,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156298,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1&bs=ctrl",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432270,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431982,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 26,
        "urgency": "medium",
        "transferBytes": 769694,
        "estimatedRedundantBytes": 219099,
        "redundancyRatio": 0.28465727938635355,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 219099,
            "displayValue": "Est savings of 214 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 219099,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 37,
        "urgency": "medium",
        "totalTransferBytes": 769694,
        "heavyRequestCount": 4,
        "heavyBytes": 520825,
        "heavyRatio": 0.6766650123295751,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1&bs=ctrl",
            "transferSize": 156298,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1&bs=ctrl",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126175,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431982
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431982
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 219099,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156298,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1&bs=ctrl",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 214 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 214 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.58,
          "displayValue": "3.7 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.7 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "4,339 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 4,339 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/all/?q=vehicle+",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/all/?q=vehicle+",
      "performanceScore": 0.72,
      "bestPracticesScore": 1,
      "transferBytes": 769940,
      "co2Grams": 0.29494969311600006,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "All services | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "All services | CA.gov",
          "ogDescription": "A detailed view of California’s state services.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/all/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 105,
          "tabletSmallTapTargets": 109,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 105,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 109,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 105 small targets on mobile and 109 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "cache-control": "public, max-age=8640000, immutable",
            "content-encoding": "gzip",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:35:42 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003542Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006a6t",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 217217,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 217217,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 212 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 212.13 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 100,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 0.5,
          "cacheSavingsBytes": 95
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          },
          {
            "id": "uses-long-cache-ttl",
            "title": "Strengthen static asset cache TTL",
            "urgency": "medium",
            "detail": "Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 95.00 B)."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          },
          {
            "title": "Strengthen static asset cache TTL",
            "urgency": "medium",
            "detail": "Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 95.00 B)."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 769940,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 217217,
          "duplicatedBytes": 0,
          "ratio": 0.28212198353118423,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 217217,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 8,
        "urgency": "medium",
        "transferBytes": 769940,
        "estimatedDeferrableBytes": 217217,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 217217,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 217217,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88920,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432278,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 26,
        "urgency": "medium",
        "transferBytes": 769940,
        "estimatedRedundantBytes": 217217,
        "redundancyRatio": 0.28212198353118423,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 217217,
            "displayValue": "Est savings of 212 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 217217,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 37,
        "urgency": "medium",
        "totalTransferBytes": 769940,
        "heavyRequestCount": 4,
        "heavyBytes": 520910,
        "heavyRatio": 0.6765592124061616,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88920,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88920
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 217217,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 212 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 212 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.57,
          "displayValue": "3.7 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.7 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "4,339 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 4,339 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/all/?q=records+",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/all/?q=records+",
      "performanceScore": 0.72,
      "bestPracticesScore": 1,
      "transferBytes": 797324,
      "co2Grams": 0.3054399941736,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "All services | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "All services | CA.gov",
          "ogDescription": "A detailed view of California’s state services.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/all/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 161,
          "tabletSmallTapTargets": 177,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 161,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 177,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 161 small targets on mobile and 177 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "cache-control": "public, max-age=8640000, immutable",
            "content-encoding": "gzip",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:35:53 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003553Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006aym",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 218652,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 218652,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 214 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.53 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 797324,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 218652,
          "duplicatedBytes": 0,
          "ratio": 0.2742323070671396,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 218652,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 8,
        "urgency": "medium",
        "transferBytes": 797324,
        "estimatedDeferrableBytes": 218652,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 218652,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 218652,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432278,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 25,
        "urgency": "medium",
        "transferBytes": 797324,
        "estimatedRedundantBytes": 218652,
        "redundancyRatio": 0.2742323070671396,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 218652,
            "displayValue": "Est savings of 214 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 218652,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 36,
        "urgency": "medium",
        "totalTransferBytes": 797324,
        "heavyRequestCount": 4,
        "heavyBytes": 520901,
        "heavyRatio": 0.6533115772258203,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 218652,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 214 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 214 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.5,
          "displayValue": "4.0 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 4.0 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "4,339 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 4,339 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/services/53/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/services/53/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 660302,
      "co2Grams": 0.2529494145828,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431982,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Apply for Death Certificate | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/services/53/",
          "ogTitle": "Apply for Death Certificate | CA.gov",
          "ogDescription": "A certified copy of a death certificate can typically be used to obtain death benefits, claim insurance proceeds, notify social security and other legal purposes.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/services/53/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 50,
          "tabletSmallTapTargets": 52,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 50,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 52,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 50 small targets on mobile and 52 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8504",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:36:05 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003605Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006bkx",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223693,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223693,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.45 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 660302,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223693,
          "duplicatedBytes": 0,
          "ratio": 0.3387737732128632,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223693,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 660302,
        "estimatedDeferrableBytes": 223693,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223693,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223693,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156298,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432269,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431982,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 660302,
        "estimatedRedundantBytes": 223693,
        "redundancyRatio": 0.3387737732128632,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223693,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223693,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 660302,
        "heavyRequestCount": 4,
        "heavyBytes": 520893,
        "heavyRatio": 0.7888708500049977,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "transferSize": 156298,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126175,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431982
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431982
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223693,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156298,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/services/51/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/services/51/",
      "performanceScore": 0.84,
      "bestPracticesScore": 1,
      "transferBytes": 659359,
      "co2Grams": 0.2525881688226,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431980,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Apply for Marriage Certificate | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/services/51/",
          "ogTitle": "Apply for Marriage Certificate | CA.gov",
          "ogDescription": "A certified copy of a marriage certificate can typically be used as proof of marriage and other legal purposes. This is not a copy of the marriage license.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/services/51/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 2,
          "validLdJsonCount": 2,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 51,
          "tabletSmallTapTargets": 52,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 51,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 52,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 51 small targets on mobile and 52 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "8469",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:36:15 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003615Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006c6q",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223286,
        "totalEstimatedBlockingMs": 99,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223286,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 99,
            "displayValue": "Est savings of 100 ms",
            "urgency": "low",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.05 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "low",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 99 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 659359,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223286,
          "duplicatedBytes": 0,
          "ratio": 0.338641013469142,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223286,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 11,
        "urgency": "medium",
        "transferBytes": 659359,
        "estimatedDeferrableBytes": 223286,
        "renderBlockingMs": 99,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223286,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223286,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 99,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156298,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432267,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431980,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 659359,
        "estimatedRedundantBytes": 223286,
        "redundancyRatio": 0.338641013469142,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223286,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223286,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 659359,
        "heavyRequestCount": 4,
        "heavyBytes": 520823,
        "heavyRatio": 0.7898929111455216,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 156298,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 149505,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431980
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431980
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223286,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156298,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 100 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 100 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.67,
          "displayValue": "3.4 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.4 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/services/1297/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/services/1297/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 657825,
      "co2Grams": 0.25200052195500006,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Black Infant Health Program (BIH) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/services/1297/",
          "ogTitle": "Black Infant Health Program (BIH) | CA.gov",
          "ogDescription": "An equity program to support pregnant and post partum Black mothers.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/services/1297/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 48,
          "tabletSmallTapTargets": 48,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 48,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 48,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 48 small targets on mobile and 48 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "6866",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:36:25 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003625Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006cqu",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 222870,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 222870,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.65 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 657825,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 222870,
          "duplicatedBytes": 0,
          "ratio": 0.33879831262113785,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 222870,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 657825,
        "estimatedDeferrableBytes": 222870,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 222870,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222870,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432277,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 657825,
        "estimatedRedundantBytes": 222870,
        "redundancyRatio": 0.33879831262113785,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 222870,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 222870,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 657825,
        "heavyRequestCount": 4,
        "heavyBytes": 520901,
        "heavyRatio": 0.7918534564663854,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 222870,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/services/1298/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/services/1298/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 657783,
      "co2Grams": 0.2519844325362,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "California Home Visiting Program (CHVP) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/services/1298/",
          "ogTitle": "California Home Visiting Program (CHVP) | CA.gov",
          "ogDescription": "Tools, support, and resources to help families with stressful or traumatic childhood events.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/services/1298/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 47,
          "tabletSmallTapTargets": 47,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 47,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 47,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 47 small targets on mobile and 47 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "6881",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:36:35 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003634Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006d8g",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223520,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223520,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.28 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 657783,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223520,
          "duplicatedBytes": 0,
          "ratio": 0.3398081130099136,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223520,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 657783,
        "estimatedDeferrableBytes": 223520,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223520,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223520,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432278,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 657783,
        "estimatedRedundantBytes": 223520,
        "redundancyRatio": 0.3398081130099136,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223520,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223520,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 657783,
        "heavyRequestCount": 4,
        "heavyBytes": 520833,
        "heavyRatio": 0.7918006394205992,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223520,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.76,
          "displayValue": "3.1 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.1 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/services/1295/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/services/1295/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 658028,
      "co2Grams": 0.25207828747919997,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Comprehensive Perinatal Services Program (CPSP) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/services/1295/",
          "ogTitle": "Comprehensive Perinatal Services Program (CPSP) | CA.gov",
          "ogDescription": "This program is a Medi-Cal benefit to provide pregnant folks services from conception to 60 days postpartum.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/services/1295/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 51,
          "tabletSmallTapTargets": 51,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 51,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 51,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 51 small targets on mobile and 51 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7002",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:36:44 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003644Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006dvg",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 220451,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 220451,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 215 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 215.28 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 100,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 0.5,
          "cacheSavingsBytes": 95
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          },
          {
            "id": "uses-long-cache-ttl",
            "title": "Strengthen static asset cache TTL",
            "urgency": "medium",
            "detail": "Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 95.00 B)."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          },
          {
            "title": "Strengthen static asset cache TTL",
            "urgency": "medium",
            "detail": "Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 95.00 B)."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658028,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 220451,
          "duplicatedBytes": 0,
          "ratio": 0.3350176588230288,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 220451,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658028,
        "estimatedDeferrableBytes": 220451,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 220451,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 220451,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432278,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 18,
        "urgency": "medium",
        "transferBytes": 658028,
        "estimatedRedundantBytes": 220451,
        "redundancyRatio": 0.3350176588230288,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 220451,
            "displayValue": "Est savings of 215 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 220451,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658028,
        "heavyRequestCount": 4,
        "heavyBytes": 520833,
        "heavyRatio": 0.7915058325785529,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 220451,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 215 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 215 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/services/1292/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/services/1292/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 657834,
      "co2Grams": 0.2520039696876001,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Find information on abortion access | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/services/1292/",
          "ogTitle": "Find information on abortion access | CA.gov",
          "ogDescription": "Find current and accurate information about abortion access in California.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/services/1292/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 48,
          "tabletSmallTapTargets": 48,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 48,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 48,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 48 small targets on mobile and 48 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "6874",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:36:54 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003654Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006eff",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223871,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223871,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 219 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.62 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 657834,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223871,
          "duplicatedBytes": 0,
          "ratio": 0.34031533791199603,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223871,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 657834,
        "estimatedDeferrableBytes": 223871,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223871,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223871,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432278,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 657834,
        "estimatedRedundantBytes": 223871,
        "redundancyRatio": 0.34031533791199603,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223871,
            "displayValue": "Est savings of 219 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223871,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 657834,
        "heavyRequestCount": 4,
        "heavyBytes": 520901,
        "heavyRatio": 0.7918426229109471,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223871,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 219 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 219 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.73,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/services/1299/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/services/1299/",
      "performanceScore": 0.9,
      "bestPracticesScore": 1,
      "transferBytes": 657997,
      "co2Grams": 0.2520664119558,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431982,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Genetic Disease Screening Program (GDSP) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/services/1299/",
          "ogTitle": "Genetic Disease Screening Program (GDSP) | CA.gov",
          "ogDescription": "This service provides low-cost screenings for congenital disorders in newborns or pregnant women.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/services/1299/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 48,
          "tabletSmallTapTargets": 49,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 48,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 49,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 48 small targets on mobile and 49 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "6969",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:37:03 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003703Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006f2n",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223516,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223516,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.28 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 657997,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223516,
          "duplicatedBytes": 0,
          "ratio": 0.33969151835038763,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223516,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 657997,
        "estimatedDeferrableBytes": 223516,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223516,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223516,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156298,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432269,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431982,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 657997,
        "estimatedRedundantBytes": 223516,
        "redundancyRatio": 0.33969151835038763,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223516,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223516,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 657997,
        "heavyRequestCount": 4,
        "heavyBytes": 520893,
        "heavyRatio": 0.791634308363108,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "transferSize": 156298,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1h1",
            "transferSize": 149509,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126175,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431982
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431982
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223516,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156298,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1h1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.77,
          "displayValue": "3.0 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.0 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/services/1177/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/services/1177/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 658081,
      "co2Grams": 0.2520985907934001,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Get Digital Vaccine Record | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/services/1177/",
          "ogTitle": "Get Digital Vaccine Record | CA.gov",
          "ogDescription": "If you want to share your proof of vaccination digitally, you can get an electronic version of the record card you were given at time of vaccination. Enter a few details to get a link to a QR code and digital copy of your COVID-19 vaccination record.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/services/1177/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 50,
          "tabletSmallTapTargets": 50,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 50,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 50,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 50 small targets on mobile and 50 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7052",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:37:13 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003713Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006fr7",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223037,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223037,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 217.81 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658081,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223037,
          "duplicatedBytes": 0,
          "ratio": 0.33892028488894227,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223037,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658081,
        "estimatedDeferrableBytes": 223037,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223037,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223037,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432278,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658081,
        "estimatedRedundantBytes": 223037,
        "redundancyRatio": 0.33892028488894227,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223037,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223037,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658081,
        "heavyRequestCount": 4,
        "heavyBytes": 520901,
        "heavyRatio": 0.7915454176613517,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223037,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.77,
          "displayValue": "3.0 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.0 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0.5,
          "displayValue": "Est savings of 218 KiB",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/services/1296/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/services/1296/",
      "performanceScore": 0.89,
      "bestPracticesScore": 1,
      "transferBytes": 657945,
      "co2Grams": 0.252046491723,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Get maternal mental health help | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/services/1296/",
          "ogTitle": "Get maternal mental health help | CA.gov",
          "ogDescription": "CDPH provides info and resources to people seeking maternal mental health treatment.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/services/1296/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 49,
          "tabletSmallTapTargets": 49,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 49,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 49,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 49 small targets on mobile and 49 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "6917",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:37:23 GMT",
            "etag": "\"0acf14257cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:36 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003723Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006gbc",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223531,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223531,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.29 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 657945,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223531,
          "duplicatedBytes": 0,
          "ratio": 0.33974116377508756,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223531,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 657945,
        "estimatedDeferrableBytes": 223531,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223531,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223531,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432278,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 657945,
        "estimatedRedundantBytes": 223531,
        "redundancyRatio": 0.33974116377508756,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223531,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223531,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 657945,
        "heavyRequestCount": 4,
        "heavyBytes": 520901,
        "heavyRatio": 0.791709033429846,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223531,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/services/1210/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/services/1210/",
      "performanceScore": 0.88,
      "bestPracticesScore": 1,
      "transferBytes": 657974,
      "co2Grams": 0.25205760108360004,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431985,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Search for Personnel Licensing | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/services/1210/",
          "ogTitle": "Search for Personnel Licensing | CA.gov",
          "ogDescription": "This service will allow you to search by license/certificate number, last name, or full name of all clinical laboratory scientists, specialists, and phlebotomists be licensed or certified by the Department of Public Health Laboratory Field Services Branch (LFS) in order to seek employment in California",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/services/1210/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 48,
          "tabletSmallTapTargets": 48,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 48,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 48,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 48 small targets on mobile and 48 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7077",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:37:33 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003733Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006h49",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223504,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223504,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.27 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 657974,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223504,
          "duplicatedBytes": 0,
          "ratio": 0.33968515473255784,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223504,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 657974,
        "estimatedDeferrableBytes": 223504,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223504,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223504,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88852,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432273,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431985,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 657974,
        "estimatedRedundantBytes": 223504,
        "redundancyRatio": 0.33968515473255784,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223504,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223504,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 657974,
        "heavyRequestCount": 4,
        "heavyBytes": 520837,
        "heavyRatio": 0.7915768708186037,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126172,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88852,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431985
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431985
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88852
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223504,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.7,
          "displayValue": "3.3 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.3 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/departments/176/services/1174/",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/departments/176/services/1174/",
      "performanceScore": 0.88,
      "bestPracticesScore": 1,
      "transferBytes": 658178,
      "co2Grams": 0.2521357496892,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 2,
        "uniqueElementsAssessed": 2,
        "reusedFromCacheCount": 2,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "1 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 10,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": true,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "Women, Infants and Children (WIC) | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "index, follow",
          "canonical": "https://www.ca.gov/departments/176/services/1174/",
          "ogTitle": "Women, Infants and Children (WIC) | CA.gov",
          "ogDescription": "Women, Infants and Children (WIC) helps families get healthy food and a lot more.  WIC helps families by providing nutrition education, breastfeeding support, healthy foods, and referrals to healthcare and other community services.  WIC serves babies and children up to age 5, pregnant women, and new mothers. Dads, grandparents, foster parents of young children, and working families are welcome at WIC too!",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/departments/176/services/1174/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 1,
          "validLdJsonCount": 1,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 45,
          "tabletSmallTapTargets": 45,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 45,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 45,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 45 small targets on mobile and 45 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=1800",
            "content-encoding": "gzip",
            "content-length": "7149",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:37:43 GMT",
            "etag": "\"0d9224457cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:38 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003743Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006hsd",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 4,
          "imagesWithLazy": 2,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 4,
            "lazyImages": 2,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 2/4 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 223531,
        "totalEstimatedBlockingMs": 0,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 223531,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 218 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 218.29 KB."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 658178,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 223531,
          "duplicatedBytes": 0,
          "ratio": 0.3396208928283838,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 223531,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 10,
        "urgency": "medium",
        "transferBytes": 658178,
        "estimatedDeferrableBytes": 223531,
        "renderBlockingMs": 0,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 223531,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223531,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88911,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432278,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 19,
        "urgency": "medium",
        "transferBytes": 658178,
        "estimatedRedundantBytes": 223531,
        "redundancyRatio": 0.3396208928283838,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 223531,
            "displayValue": "Est savings of 218 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 223531,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 42,
        "urgency": "medium",
        "totalTransferBytes": 658178,
        "heavyRequestCount": 4,
        "heavyBytes": 520901,
        "heavyRatio": 0.7914287624320473,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl2",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88911,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88911
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 223531,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl2",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 218 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 218 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.72,
          "displayValue": "3.2 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.2 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0.5,
          "displayValue": "Est savings of 0 ms",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 0 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/all/?q=birth+",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/all/?q=birth+",
      "performanceScore": 0.57,
      "bestPracticesScore": 1,
      "transferBytes": 786630,
      "co2Grams": 0.30134332168200006,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "All services | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "All services | CA.gov",
          "ogDescription": "A detailed view of California’s state services.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/all/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 57,
          "tabletSmallTapTargets": 58,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 57,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 58,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 57 small targets on mobile and 58 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "cache-control": "public, max-age=8640000, immutable",
            "content-encoding": "gzip",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:37:53 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003753Z-15fb756cf88qh4rdhC1PHX9r4n0000000gqg000000006kek",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 218535,
        "totalEstimatedBlockingMs": 417,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 218535,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 213 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 417,
            "displayValue": "Est savings of 420 ms",
            "urgency": "medium",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.41 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "medium",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 417 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 786630,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 218535,
          "duplicatedBytes": 0,
          "ratio": 0.2778116776629419,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 218535,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 13,
        "urgency": "medium",
        "transferBytes": 786630,
        "estimatedDeferrableBytes": 218535,
        "renderBlockingMs": 417,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 218535,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 218535,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 417,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88843,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432277,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 287,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 25,
        "urgency": "medium",
        "transferBytes": 786630,
        "estimatedRedundantBytes": 218535,
        "redundancyRatio": 0.2778116776629419,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 218535,
            "displayValue": "Est savings of 213 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 218535,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 36,
        "urgency": "medium",
        "totalTransferBytes": 786630,
        "heavyRequestCount": 4,
        "heavyBytes": 520833,
        "heavyRatio": 0.6621067083635254,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88843,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88843
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 218535,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 213 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 213 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 420 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 420 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.61,
          "displayValue": "3.6 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.6 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "4,339 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 4,339 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    },
    {
      "url": "https://ca.gov/services/all/?q=birth+certificate+",
      "status": "ok",
      "finalUrl": "https://www.ca.gov/services/all/?q=birth+certificate+",
      "performanceScore": 0.58,
      "bestPracticesScore": 1,
      "transferBytes": 763160,
      "co2Grams": 0.2923524012240001,
      "greenWeb": {
        "page": {
          "hostname": "www.ca.gov",
          "checked": true,
          "status": "not-green",
          "green": false,
          "hostedBy": null,
          "hostedByWebsite": null,
          "listedProvider": null,
          "partner": null,
          "modified": "2026-04-14T00:20:49.967077",
          "supportingDocuments": [],
          "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.ca.gov",
          "error": null
        },
        "externalAssets": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "summary": {
          "pageStatus": "not-green",
          "externalOriginCount": 2,
          "greenCount": 1,
          "notGreenCount": 2,
          "unknownCount": 0
        }
      },
      "formValidation": {
        "score": 55,
        "urgency": "medium",
        "pageElementOccurrences": 16,
        "uniqueElementsAssessed": 4,
        "reusedFromCacheCount": 4,
        "components": [
          {
            "signature": "search|get|/search/|input|search|q|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "search",
            "controlType": "search",
            "fieldName": "q",
            "formContext": "search|get|/search/",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|search|anonymous|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "search",
            "fieldName": null,
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": false,
            "assessment": {
              "score": 60,
              "urgency": "high",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook",
                "Missing autocomplete for tooling support"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input.",
                "Provide meaningful autocomplete values to support browsers and assistive tooling."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|input|checkbox|agencytags|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "checkbox",
            "fieldName": "agencytags",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          },
          {
            "signature": "no-form|textarea|textarea|add-feedback|no-autocomplete|optional|no-pattern|no-minlength",
            "role": "form",
            "controlType": "textarea",
            "fieldName": "add-feedback",
            "formContext": "no-form",
            "hasLabel": true,
            "hasValidationRule": false,
            "hasErrorMessagingHook": false,
            "toolingFriendly": true,
            "assessment": {
              "score": 50,
              "urgency": "medium",
              "issues": [
                "No explicit validation rule",
                "No error messaging hook"
              ],
              "recommendations": [
                "Define validation constraints (required, pattern, min/max, or semantic input type).",
                "Add aria-errormessage/aria-describedby and a visible error region for invalid input."
              ]
            },
            "reusedFromCache": true
          }
        ],
        "recommendations": [
          {
            "title": "No explicit validation rule",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "No error messaging hook",
            "urgency": "medium",
            "detail": "4 unique form control signature(s) on this page include this issue."
          },
          {
            "title": "Missing autocomplete for tooling support",
            "urgency": "medium",
            "detail": "2 unique form control signature(s) on this page include this issue."
          }
        ]
      },
      "metadata": {
        "score": 20,
        "urgency": "low",
        "checks": {
          "hasTitle": true,
          "hasLang": true,
          "hasDescription": false,
          "hasCanonical": false,
          "hasOpenGraphCore": true,
          "hasTwitterCard": true,
          "hasViewport": true,
          "hasCharset": true,
          "hasValidStructuredData": true,
          "hasInvalidStructuredData": false
        },
        "observed": {
          "title": "All services | CA.gov",
          "lang": "en-US",
          "charset": "utf-8",
          "viewport": "width=device-width, initial-scale=1.0, minimum-scale=1.0",
          "description": "",
          "robots": "noindex, follow",
          "canonical": "",
          "ogTitle": "All services | CA.gov",
          "ogDescription": "A detailed view of California’s state services.",
          "ogType": "website",
          "ogUrl": "https://www.ca.gov/services/all/",
          "twitterCard": "summary_large_image",
          "ldJsonCount": 0,
          "validLdJsonCount": 0,
          "invalidLdJsonCount": 0
        },
        "recommendations": [
          {
            "title": "Add canonical URL metadata",
            "urgency": "medium",
            "detail": "Use rel=canonical to reduce duplicate URL ambiguity for crawlers and tooling."
          },
          {
            "title": "Add meta description",
            "urgency": "medium",
            "detail": "Provide a concise description to improve machine interpretation and preview quality."
          }
        ]
      },
      "layoutAdaptation": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "testedMobile": true,
          "testedTablet": true,
          "horizontalOverflowOnMobile": false,
          "horizontalOverflowOnTablet": false,
          "mobileSmallTapTargets": 49,
          "tabletSmallTapTargets": 48,
          "fixedWidthOffenders": 0,
          "oversizedMedia": 0,
          "scanErrors": 0
        },
        "perDevice": [
          {
            "device": "mobile",
            "viewportWidth": 390,
            "viewportHeight": 844,
            "contentWidth": 390,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 49,
            "oversizedMedia": 0
          },
          {
            "device": "tablet",
            "viewportWidth": 820,
            "viewportHeight": 1180,
            "contentWidth": 820,
            "horizontalOverflowPx": 0,
            "hasHorizontalOverflow": false,
            "fixedWidthOffenders": 0,
            "smallTapTargets": 48,
            "oversizedMedia": 0
          }
        ],
        "recommendations": [
          {
            "title": "Increase touch target sizes",
            "urgency": "high",
            "detail": "Ensure interactive controls are at least 44x44 CSS px. Detected 49 small targets on mobile and 48 on tablet."
          }
        ]
      },
      "securityLight": {
        "score": 31,
        "urgency": "medium",
        "checks": {
          "isHttps": true,
          "hasHsts": false,
          "hasCsp": true,
          "hasXContentTypeOptions": true,
          "hasReferrerPolicy": false,
          "hasPermissionsPolicy": false,
          "exposesServerFingerprint": true,
          "externalScriptCount": 1,
          "externalScriptsWithoutIntegrity": 1,
          "vulnerableLibraryCount": 0
        },
        "observed": {
          "headers": {
            "accept-ranges": "bytes",
            "cache-control": "public, max-age=8640000, immutable",
            "content-encoding": "gzip",
            "content-length": "53244",
            "content-security-policy": "frame-ancestors 'self' *.ca.gov",
            "content-type": "text/html",
            "date": "Tue, 14 Apr 2026 00:38:05 GMT",
            "etag": "\"0528f4057cbdc1:0\"",
            "last-modified": "Mon, 13 Apr 2026 15:07:32 GMT",
            "vary": "Accept-Encoding",
            "x-azure-ref": "20260414T003805Z-15fb756cf88nqvzlhC1PHX443n0000000vf000000000646r",
            "x-cache": "CONFIG_NOCACHE",
            "x-content-type-options": "nosniff",
            "x-powered-by": "ASP.NET"
          },
          "vulnerableLibrariesAuditScore": null,
          "vulnerableLibraries": []
        },
        "recommendations": [
          {
            "title": "Enable Strict-Transport-Security",
            "urgency": "medium",
            "detail": "Set a Strict-Transport-Security header to enforce HTTPS on repeat visits."
          },
          {
            "title": "Define a Referrer-Policy",
            "urgency": "low",
            "detail": "Set a referrer policy to reduce unnecessary URL data leakage."
          },
          {
            "title": "Define a Permissions-Policy",
            "urgency": "low",
            "detail": "Restrict browser capabilities to only what the application needs."
          },
          {
            "title": "Add SRI to external scripts",
            "urgency": "medium",
            "detail": "1 external script tag(s) are missing integrity attributes."
          }
        ]
      },
      "expectedFiles": {
        "score": 30,
        "urgency": "medium",
        "origin": "https://www.ca.gov",
        "checks": [
          {
            "path": "/robots.txt",
            "kind": "expected",
            "url": "https://www.ca.gov/robots.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/sitemap.xml",
            "kind": "beneficial",
            "url": "https://www.ca.gov/sitemap.xml",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/.well-known/security.txt",
            "kind": "beneficial",
            "url": "https://www.ca.gov/.well-known/security.txt",
            "found": true,
            "status": 200,
            "contentType": "text/plain"
          },
          {
            "path": "/manifest.webmanifest",
            "kind": "beneficial",
            "url": "https://www.ca.gov/manifest.webmanifest",
            "found": false,
            "status": 404,
            "contentType": "text/html; charset=utf-8"
          },
          {
            "path": "/favicon.ico",
            "kind": "beneficial",
            "url": "https://www.ca.gov/favicon.ico",
            "found": true,
            "status": 200,
            "contentType": "image/x-icon"
          }
        ],
        "recommendations": [
          {
            "title": "Add beneficial discoverability and maintenance files",
            "urgency": "low",
            "detail": "Missing beneficial file(s): /sitemap.xml, /manifest.webmanifest."
          }
        ]
      },
      "mediaHints": {
        "score": 30,
        "urgency": "medium",
        "checks": {
          "hasDarkMode": false,
          "hasMetaColorScheme": false,
          "hasDarkModeQuery": false,
          "autoplayingMedia": [],
          "autoplayCount": 0,
          "unmutedAutoplayCount": 0,
          "totalImages": 3,
          "imagesWithLazy": 1,
          "imagesWithoutLazy": 2
        },
        "recommendations": [
          {
            "title": "Add dark mode support",
            "urgency": "medium",
            "detail": "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."
          },
          {
            "title": "Add loading=\"lazy\" to images",
            "urgency": "medium",
            "detail": "2 of 3 image(s) lack an explicit loading=\"lazy\" attribute. Lazy loading defers below-fold images and reduces initial page weight."
          }
        ]
      },
      "wsgCustom": {
        "score": 70,
        "urgency": "medium",
        "data": {
          "hasPrintStyles": true,
          "hasReducedMotion": true,
          "media": {
            "totalImages": 3,
            "lazyImages": 1,
            "totalIframes": 0,
            "lazyIframes": 0
          },
          "typography": {
            "primaryFont": "\"Public Sans\", system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", sans-serif",
            "usesSystemFont": true
          },
          "tracking": {
            "count": 3,
            "scripts": [
              "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1&bs=ctrl",
              "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1&bs=ctrl",
              "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV"
            ]
          },
          "semantics": {
            "hasNavigation": true,
            "hasMainContent": true
          }
        },
        "recommendations": [
          {
            "guideline": "11.3",
            "title": "Incomplete media lazy loading",
            "urgency": "medium",
            "detail": "Only 1/3 images use loading=\"lazy\". Global lazy loading reduces initial data transfer and energy consumption.",
            "wsid": "11.lazy loading",
            "assessor": "script",
            "example": "<img src=\"image.webp\" alt=\"Description\" loading=\"lazy\" width=\"800\" height=\"600\">\n<!-- Works for iframes too -->\n<iframe src=\"video.html\" loading=\"lazy\"></iframe>"
          },
          {
            "guideline": "7.3",
            "title": "Multiple tracking scripts detected",
            "urgency": "medium",
            "detail": "Found 3 commercial tracking scripts. Consider lightweight, privacy-focused alternatives like Plausible or Fathom to reduce JS weight and energy footprint.",
            "wsid": "7.analytics and tracking",
            "assessor": "script",
            "example": "<!-- Replace heavy trackers with lightweight alternatives -->\n<script defer data-domain=\"yourdomain.com\" src=\"https://plausible.io/js/script.js\"></script>"
          },
          {
            "guideline": "2.4",
            "title": "Review User Journey Efficiency",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.minimize non-essential content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys",
            "assessor": "human"
          },
          {
            "guideline": "2.6",
            "title": "Check for Engagement Traps",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.design to assist not distract",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract",
            "assessor": "human"
          },
          {
            "guideline": "2.7",
            "title": "Audit for Deceptive Design Patterns",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.avoid manipulative deceptive",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive",
            "assessor": "human"
          },
          {
            "guideline": "2.14",
            "title": "Verify Accessible Alternatives for All Media",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.offer suitable alternatives",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used",
            "assessor": "human"
          },
          {
            "guideline": "2.18",
            "title": "Confirm User Research Was Conducted",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.involve users early",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project",
            "assessor": "human"
          },
          {
            "guideline": "2.10",
            "title": "Review Content Conciseness",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "2.provide clear inclusive content",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose",
            "assessor": "ai"
          },
          {
            "guideline": "4.4",
            "title": "Verify Error Pages and Redirects Are Configured",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.error pages redirection",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links",
            "assessor": "human"
          },
          {
            "guideline": "4.10",
            "title": "Review CDN Usage and Geographic Distribution",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "4.content delivery networks",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately",
            "assessor": "human"
          },
          {
            "guideline": "5.2",
            "title": "Confirm a Sustainability Advocate Is Assigned",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.assign sustainability advocate",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate",
            "assessor": "human"
          },
          {
            "guideline": "5.8",
            "title": "Check for a Public Sustainability Statement",
            "urgency": "investigate",
            "detail": "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.",
            "wsid": "5.support mandatory disclosures",
            "wsgUrl": "https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting",
            "assessor": "human"
          }
        ]
      },
      "compressionOpportunities": {
        "wsgReference": {
          "title": "Reduce data transfer with compression",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression"
        },
        "score": 0,
        "urgency": "low",
        "totalEstimatedSavingsBytes": 0,
        "checks": {
          "hasEffectiveTextCompression": true
        },
        "opportunities": [],
        "recommendations": [
          {
            "title": "No major compression opportunity detected",
            "urgency": "low",
            "detail": "Compression signals look healthy in current Lighthouse audits; continue enforcing compression and asset encoding in CI/CD."
          }
        ]
      },
      "optimizationOpportunities": {
        "wsgReference": {
          "title": "Use the most efficient solution for your service",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service"
        },
        "score": 100,
        "urgency": "high",
        "totalEstimatedSavingsBytes": 219011,
        "totalEstimatedBlockingMs": 83,
        "opportunities": [
          {
            "id": "unused-javascript",
            "title": "Remove unused JavaScript",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code.",
            "estimatedSavingsBytes": 219011,
            "estimatedBlockingMs": 0,
            "displayValue": "Est savings of 214 KiB",
            "urgency": "high",
            "sourceAuditId": "unused-javascript"
          },
          {
            "id": "render-blocking-resources",
            "title": "Eliminate render-blocking resources",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering.",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 83,
            "displayValue": "Est savings of 80 ms",
            "urgency": "low",
            "sourceAuditId": "render-blocking-resources"
          }
        ],
        "recommendations": [
          {
            "title": "Remove unused JavaScript",
            "urgency": "high",
            "detail": "Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 213.88 KB."
          },
          {
            "title": "Eliminate render-blocking resources",
            "urgency": "low",
            "detail": "Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 83 ms."
          }
        ]
      },
      "dependencyMaintenance": {
        "wsgReference": {
          "title": "Use dependencies appropriately and ensure maintenance",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance"
        },
        "score": 2,
        "urgency": "medium",
        "vulnerableLibraryCount": 0,
        "vulnerableLibraries": [],
        "externalScriptsWithoutIntegrity": 1,
        "recommendations": [
          {
            "title": "Add integrity attributes for external dependencies",
            "urgency": "medium",
            "detail": "1 external script dependency URL(s) are missing SRI integrity attributes."
          }
        ]
      },
      "offlineSupport": {
        "wsgReference": {
          "title": "Optimize caching and support offline access",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access"
        },
        "score": 90,
        "urgency": "high",
        "checks": {
          "hasServiceWorker": false,
          "worksOffline": false,
          "hasInstallableManifest": false,
          "hasOfflineStartUrl": false,
          "longCacheTtlScore": 1,
          "cacheSavingsBytes": 0
        },
        "opportunities": [
          {
            "id": "service-worker",
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "id": "works-offline",
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "id": "installable-manifest",
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "id": "offline-start-url",
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ],
        "recommendations": [
          {
            "title": "Add service worker support",
            "urgency": "high",
            "detail": "Register a service worker to support resilient caching and offline behavior for key routes."
          },
          {
            "title": "Ensure critical routes work offline",
            "urgency": "high",
            "detail": "Provide an offline fallback strategy for key pages and shell assets."
          },
          {
            "title": "Improve web app manifest support",
            "urgency": "medium",
            "detail": "Complete manifest fields so clients can install and run an app-like experience."
          },
          {
            "title": "Support offline start URL behavior",
            "urgency": "medium",
            "detail": "Ensure start URL and shell routing can load in disconnected conditions."
          }
        ]
      },
      "languageVersionGuidance": {
        "wsgReference": {
          "title": "Use the latest stable language version",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version"
        },
        "score": 0,
        "urgency": "low",
        "observedTechnologies": [
          {
            "family": "ASP.NET",
            "version": null,
            "sourceHeader": "x-powered-by",
            "observedValue": "ASP.NET",
            "major": null,
            "recommendedBaseline": "8",
            "outdated": false,
            "urgency": "low"
          }
        ],
        "outdatedTechnologies": [],
        "vulnerableLibraryCount": 0,
        "recommendations": [
          {
            "title": "No obvious outdated runtime version disclosed",
            "urgency": "low",
            "detail": "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."
          }
        ]
      },
      "deadCode": {
        "score": 15,
        "urgency": "medium",
        "transferBytes": 763160,
        "css": {
          "unusedBytes": 0,
          "ratio": 0,
          "auditId": "unused-css-rules"
        },
        "javascript": {
          "unusedBytes": 219011,
          "duplicatedBytes": 0,
          "ratio": 0.2869791393678914,
          "auditIds": [
            "unused-javascript",
            "duplicated-javascript"
          ]
        },
        "html": {
          "estimatedPenalty": 0.125,
          "totalBodyElements": 0,
          "maxDepth": 0,
          "maxChildElements": 0,
          "note": "HTML dead code cannot be measured directly from Lighthouse. This score estimates unnecessary markup from DOM size and complexity signals."
        },
        "recommendations": [
          {
            "area": "javascript",
            "title": "Remove unused JavaScript and feature bundles",
            "urgency": "high",
            "estimatedSavingsBytes": 219011,
            "strategy": "Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "4",
              "title": "Remove unnecessary code",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
              "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "4",
          "title": "Remove unnecessary code",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code",
          "subheading": "Clear out dead or unused code as it builds up in a project to reduce the amount of wasted data being transferred."
        }
      },
      "nonCriticalResources": {
        "score": 9,
        "urgency": "medium",
        "transferBytes": 763160,
        "estimatedDeferrableBytes": 219011,
        "renderBlockingMs": 83,
        "breakdown": {
          "offscreenImageSavings": 0,
          "unusedJavascriptSavings": 219011,
          "unusedCssSavings": 0
        },
        "candidates": [
          {
            "title": "Defer non-critical JavaScript",
            "area": "javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 219011,
            "strategy": "Split bundles and load feature code on interaction or route transition.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Eliminate render-blocking resources",
            "area": "render-path",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "estimatedBlockingMs": 83,
            "strategy": "Defer scripts/styles not required for first paint and preload only truly critical assets.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy script from www.googletagmanager.com",
            "area": "script",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          },
          {
            "title": "Evaluate deferred loading for heavy font from www.ca.gov",
            "area": "font",
            "urgency": "medium",
            "estimatedSavingsBytes": 88902,
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "strategy": "Confirm this asset is required for first paint; defer or lazy-load if not critical.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "8",
              "title": "Defer the loading of non-critical resources",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
              "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "8",
          "title": "Defer the loading of non-critical resources",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources",
          "subheading": "Avoid render-blocking slowdowns by asynchronously loading, deferring, or prioritizing external resources as appropriate."
        }
      },
      "thirdPartyJs": {
        "wsgReference": {
          "title": "Give third parties the same priority as first parties during assessment",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment"
        },
        "score": 63,
        "urgency": "high",
        "providerCount": 2,
        "requestCount": 4,
        "transferBytes": 432278,
        "notGreenCount": 1,
        "unknownCount": 0,
        "scripts": [
          {
            "hostname": "www.googletagmanager.com",
            "resourceType": "script",
            "requestCount": 3,
            "transferBytes": 431990,
            "sampleUrl": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "greenCheck": {
              "hostname": "www.googletagmanager.com",
              "checked": true,
              "status": "green",
              "green": true,
              "hostedBy": "Google Cloud",
              "hostedByWebsite": "https://cloud.google.com",
              "listedProvider": true,
              "partner": null,
              "modified": "2026-03-06T00:36:18",
              "supportingDocuments": [
                {
                  "id": 108,
                  "title": "Sustainability at Google",
                  "link": "https://sustainability.google"
                },
                {
                  "id": 1364,
                  "title": "Google 2024 Environmental Report",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-environmental-report.pdf"
                },
                {
                  "id": 1365,
                  "title": "Alphabet 2024 CDP Climate Change Response",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-2024-cdp-climate-change-response.pdf"
                },
                {
                  "id": 1366,
                  "title": "Google 2024 Supplier Responsibility Report.",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/google-2024-supplier-responsibility-report.pdf"
                },
                {
                  "id": 1367,
                  "title": "Alphabet FY2023 Environmental Indicators Assurance Letter",
                  "link": "https://www.gstatic.com/gumdrop/sustainability/alphabet-fy2023-environmental-indicators-assurance-letter.pdf"
                },
                {
                  "id": 1368,
                  "title": "3Degrees Cloud Services Review Statement",
                  "link": "https://services.google.com/fh/files/misc/3degrees_cloud_services_review_statement_final.pdf"
                }
              ],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/www.googletagmanager.com",
              "error": null
            }
          },
          {
            "hostname": "alert.cdt.ca.gov",
            "resourceType": "script",
            "requestCount": 1,
            "transferBytes": 288,
            "sampleUrl": "https://alert.cdt.ca.gov/",
            "greenCheck": {
              "hostname": "alert.cdt.ca.gov",
              "checked": true,
              "status": "not-green",
              "green": false,
              "hostedBy": null,
              "hostedByWebsite": null,
              "listedProvider": null,
              "partner": null,
              "modified": "2026-04-14T00:20:50.232870",
              "supportingDocuments": [],
              "source": "https://api.thegreenwebfoundation.org/api/v3/greencheck/alert.cdt.ca.gov",
              "error": null
            }
          }
        ],
        "recommendations": [
          {
            "title": "Maintain a third-party JavaScript inventory",
            "urgency": "high",
            "detail": "Track 2 third-party script origin(s) and assign an owner plus business justification for each."
          },
          {
            "title": "Reduce third-party script payload and requests",
            "urgency": "high",
            "detail": "Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction."
          },
          {
            "title": "Prioritize greener alternatives for third-party providers",
            "urgency": "high",
            "detail": "1 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset."
          }
        ]
      },
      "redundancy": {
        "score": 26,
        "urgency": "medium",
        "transferBytes": 763160,
        "estimatedRedundantBytes": 219011,
        "redundancyRatio": 0.2869791393678914,
        "relatedAuditIds": [
          "unused-css-rules",
          "unused-javascript",
          "duplicated-javascript",
          "dom-size",
          "uses-text-compression",
          "unminified-css",
          "unminified-javascript"
        ],
        "wasteByAudit": [
          {
            "auditId": "unused-javascript",
            "title": "Reduce unused JavaScript",
            "savingsBytes": 219011,
            "displayValue": "Est savings of 214 KiB"
          }
        ],
        "recommendations": [
          {
            "title": "Reduce unused javascript",
            "urgency": "high",
            "estimatedSavingsBytes": 219011,
            "auditId": "unused-javascript",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          },
          {
            "title": "Reduce DOM complexity and redundant markup",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "auditId": "dom-size",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "2",
              "title": "Remove unnecessary or redundant information",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
              "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "2",
          "title": "Remove unnecessary or redundant information",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
          "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
        }
      },
      "modularization": {
        "score": 37,
        "urgency": "medium",
        "totalTransferBytes": 763160,
        "heavyRequestCount": 4,
        "heavyBytes": 520892,
        "heavyRatio": 0.6825462550448137,
        "heavyRequests": [
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "transferSize": 156303,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtag/js?id=G-69TD0KNT0F&cx=c&gtm=4e64a1",
            "transferSize": 149510,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.googletagmanager.com/gtm.js?id=GTM-PZGPNNV",
            "transferSize": 126177,
            "resourceType": "script",
            "mimeType": "application/javascript",
            "domain": "www.googletagmanager.com"
          },
          {
            "url": "https://www.ca.gov/fonts/CaGov.woff2",
            "transferSize": 88902,
            "resourceType": "font",
            "mimeType": "application/font-woff2",
            "domain": "www.ca.gov"
          }
        ],
        "groupedByType": [
          {
            "resourceType": "script",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "resourceType": "font",
            "count": 1,
            "transferBytes": 88902
          }
        ],
        "groupedByOrigin": [
          {
            "domain": "www.googletagmanager.com",
            "count": 3,
            "transferBytes": 431990
          },
          {
            "domain": "www.ca.gov",
            "count": 1,
            "transferBytes": 88902
          }
        ],
        "onDemandCandidates": [
          {
            "title": "Split JavaScript by route or interaction",
            "urgency": "high",
            "estimatedSavingsBytes": 219011,
            "strategy": "Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Defer non-critical UI modules until after first render",
            "urgency": "medium",
            "estimatedSavingsBytes": 0,
            "strategy": "Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          },
          {
            "title": "Modularize heavy script asset from www.googletagmanager.com",
            "urgency": "medium",
            "estimatedSavingsBytes": 156303,
            "strategy": "Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.",
            "url": "https://www.googletagmanager.com/gtag/js?id=G-TM1XPW93HF&cx=c&gtm=4e64a1",
            "wsg": {
              "categoryId": "3",
              "categoryName": "Web Development",
              "id": "3",
              "title": "Modularize bandwidth-heavy components",
              "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
              "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
            }
          }
        ],
        "wsg": {
          "categoryId": "3",
          "categoryName": "Web Development",
          "id": "3",
          "title": "Modularize bandwidth-heavy components",
          "url": "https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components",
          "subheading": "Break down large components into smaller, self-contained pieces that can be requested only when required to save bandwidth."
        }
      },
      "findings": [
        {
          "auditId": "unused-javascript",
          "title": "Reduce unused JavaScript",
          "description": "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/).",
          "score": 0,
          "displayValue": "Est savings of 214 KiB",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "16",
            "title": "Use dependencies appropriately and ensure maintenance",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance",
            "subheading": "Use libraries and frameworks only where necessary, when plain code or smaller packages are inappropriate for the use case, and they are kept up to date."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Reduce unused JavaScript\n\n- Lighthouse audit: unused-javascript\n- Current value: Est savings of 214 KiB\n- WSG guideline: 16 Use dependencies appropriately and ensure maintenance\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance\n\n### Why this matters\nReduce 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/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "render-blocking-resources",
          "title": "Eliminate render-blocking resources",
          "description": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).",
          "score": 0,
          "displayValue": "Est savings of 80 ms",
          "impact": "high",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "18",
            "title": "Use the most efficient solution for your service",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service",
            "subheading": "Identify the project requirements, use the most efficient approach, aim for static over dynamic where possible, and consider the impact of extensions and components."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Eliminate render-blocking resources\n\n- Lighthouse audit: render-blocking-resources\n- Current value: Est savings of 80 ms\n- WSG guideline: 18 Use the most efficient solution for your service\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service\n\n### Why this matters\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "largest-contentful-paint",
          "title": "Largest Contentful Paint",
          "description": "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/)",
          "score": 0.6,
          "displayValue": "3.6 s",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "1",
            "title": "Set goals based on performance and energy impact",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact",
            "subheading": "Account for the difference in energy intensity that different types of content may have on a project and set goals based on what you would like to achieve."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Largest Contentful Paint\n\n- Lighthouse audit: largest-contentful-paint\n- Current value: 3.6 s\n- WSG guideline: 1 Set goals based on performance and energy impact\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact\n\n### Why this matters\nLargest 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/)\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        },
        {
          "auditId": "dom-size",
          "title": "Avoid an excessive DOM size",
          "description": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).",
          "score": 0.5,
          "displayValue": "4,339 elements",
          "impact": "medium",
          "wsg": {
            "categoryId": "3",
            "categoryName": "Web Development",
            "id": "2",
            "title": "Remove unnecessary or redundant information",
            "url": "https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information",
            "subheading": "Remove redundant characters from code to reduce the amount of data being stored and transferred to devices."
          },
          "assessor": "script",
          "issueTemplate": "## Improve Avoid an excessive DOM size\n\n- Lighthouse audit: dom-size\n- Current value: 4,339 elements\n- WSG guideline: 2 Remove unnecessary or redundant information\n- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information\n\n### Why this matters\nA large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations), and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/).\n\n### Definition of done\n- [ ] Metric improves in Lighthouse on key templates\n- [ ] Changes documented in release notes\n- [ ] Re-scan confirms improvement"
        }
      ]
    }
  ]
}
