{"id":1938,"date":"2024-05-24T15:18:30","date_gmt":"2024-05-24T13:18:30","guid":{"rendered":"https:\/\/conlumina.com\/?page_id=1938"},"modified":"2026-02-16T16:53:09","modified_gmt":"2026-02-16T15:53:09","slug":"website-check","status":"publish","type":"page","link":"https:\/\/conlumina.com\/de\/website-check\/","title":{"rendered":"\u00dcberpr\u00fcfung der Nachhaltigkeit und Leistung der Website"},"content":{"rendered":"<section id=\"header\">\n\t\t<div id=\"header-bg\">\n\t\t\t<svg\n  fill=\"none\"\n  height=\"692\"\n  viewBox=\"0 0 1440 692\"\n  width=\"1440\"\n  xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n>\n\n  <defs>\n\n    <!-- Filters -->\n    <filter id=\"blurA\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\"\n      height=\"1094.06\" width=\"1149.93\" x=\"777.889\" y=\"-111.111\">\n      <feFlood flood-opacity=\"0\"\/>\n      <feBlend in=\"SourceGraphic\" mode=\"normal\"\/>\n      <feGaussianBlur stdDeviation=\"130.556\"\/>\n    <\/filter>\n\n    <filter id=\"blurB\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\"\n      height=\"1094.06\" width=\"1149.93\" x=\"-96.1111\" y=\"-127.111\">\n      <feFlood flood-opacity=\"0\"\/>\n      <feBlend in=\"SourceGraphic\" mode=\"normal\"\/>\n      <feGaussianBlur stdDeviation=\"130.556\"\/>\n    <\/filter>\n\n    <filter id=\"blurC\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\"\n      height=\"1015.2\" width=\"1030.34\" x=\"611.889\" y=\"-357.111\">\n      <feFlood flood-opacity=\"0\"\/>\n      <feBlend in=\"SourceGraphic\" mode=\"normal\"\/>\n      <feGaussianBlur stdDeviation=\"130.556\"\/>\n    <\/filter>\n\n    <filter id=\"blurD\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\"\n      height=\"1417.37\" width=\"1418.62\" x=\"184.444\" y=\"-311.556\">\n      <feFlood flood-opacity=\"0\"\/>\n      <feBlend in=\"SourceGraphic\" mode=\"normal\"\/>\n      <feGaussianBlur stdDeviation=\"182.778\"\/>\n    <\/filter>\n\n    <filter id=\"blurE\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\"\n      height=\"992.425\" width=\"985.556\" x=\"-409.234\" y=\"-346.04\">\n      <feFlood flood-opacity=\"0\"\/>\n      <feBlend in=\"SourceGraphic\" mode=\"normal\"\/>\n      <feGaussianBlur stdDeviation=\"104.444\"\/>\n    <\/filter>\n\n    <!-- Purple radial gradients (inline stops, no xlink) -->\n    <radialGradient\n      id=\"gradPurpleRight\"\n      cx=\"0\"\n      cy=\"0\"\n      r=\"1\"\n      gradientUnits=\"userSpaceOnUse\"\n      gradientTransform=\"matrix(-14.2621 281.286 -256.246 -15.6804 1354.54 482.551)\"\n    >\n      <stop offset=\"0\" stop-color=\"#e0dcf3\"\/>\n      <stop offset=\"0.577448\" stop-color=\"#a89edc\"\/>\n    <\/radialGradient>\n\n    <radialGradient\n      id=\"gradPurpleLeft\"\n      cx=\"0\"\n      cy=\"0\"\n      r=\"1\"\n      gradientUnits=\"userSpaceOnUse\"\n      gradientTransform=\"matrix(-14.2621 281.286 -256.246 -15.6804 480.54 466.551)\"\n    >\n      <stop offset=\"0\" stop-color=\"#e0dcf3\"\/>\n      <stop offset=\"0.577448\" stop-color=\"#a89edc\"\/>\n    <\/radialGradient>\n\n    <!-- Green gradient -->\n    <radialGradient\n      id=\"gradGreen\"\n      cx=\"0\"\n      cy=\"0\"\n      r=\"1\"\n      gradientUnits=\"userSpaceOnUse\"\n      gradientTransform=\"matrix(-60.2022 402.223 -390.106 -59.7646 1128.51 188.239)\"\n    >\n      <stop offset=\"0\" stop-color=\"#61beb1\"\/>\n      <stop offset=\"0.984375\" stop-color=\"#bde5df\" stop-opacity=\"0.5\"\/>\n    <\/radialGradient>\n\n    <!-- Clip path -->\n    <clipPath id=\"clipCanvas\">\n      <path d=\"M0 0h692v1440H0z\" transform=\"matrix(0 -1 1 0 0 692)\"\/>\n    <\/clipPath>\n\n  <\/defs>\n\n  <g clip-path=\"url(#clipCanvas)\">\n\n    <!-- Purple right -->\n    <g filter=\"url(#blurA)\">\n      <ellipse\n        cx=\"1352.86\"\n        cy=\"435.917\"\n        rx=\"285.917\"\n        ry=\"313.856\"\n        fill=\"url(#gradPurpleRight)\"\n        fill-opacity=\"0.2\"\n        transform=\"matrix(0 -1 1 0 916.943 1788.777)\"\n      \/>\n    <\/g>\n\n    <!-- Purple left -->\n    <g filter=\"url(#blurB)\">\n      <ellipse\n        cx=\"478.856\"\n        cy=\"419.917\"\n        rx=\"285.917\"\n        ry=\"313.856\"\n        fill=\"url(#gradPurpleLeft)\"\n        fill-opacity=\"0.2\"\n        transform=\"matrix(0 -1 1 0 58.939 898.773)\"\n      \/>\n    <\/g>\n\n    <!-- Green gradient -->\n    <g filter=\"url(#blurC)\">\n      <ellipse\n        cx=\"1127.06\"\n        cy=\"150.489\"\n        rx=\"246.489\"\n        ry=\"254.061\"\n        fill=\"url(#gradGreen)\"\n        fill-opacity=\"0.6\"\n        transform=\"matrix(0 -1 1 0 976.571 1277.549)\"\n      \/>\n    <\/g>\n\n    <!-- Teal blob -->\n    <g filter=\"url(#blurD)\">\n      <path\n        d=\"M860.594 54c145.796 0 376.916 367.431 376.916 507.6 0 140.17-299.405 178.658-445.199 178.658S550 395.806 550 255.636 714.8 54.0001 860.594 54Z\"\n        fill=\"#53b9ab\"\n        fill-opacity=\"0.5\"\n      \/>\n    <\/g>\n\n    <!-- Purple blob -->\n    <g filter=\"url(#blurE)\">\n      <ellipse\n        cx=\"83.5443\"\n        cy=\"150.172\"\n        rx=\"283.106\"\n        ry=\"287.947\"\n        fill=\"#634fc0\"\n        fill-opacity=\"0.4\"\n        transform=\"matrix(.92437368 .38148827 -.38148827 .92437368 63.607004 -20.514215)\"\n      \/>\n    <\/g>\n\n  <\/g>\n\n<\/svg>\n\n\t\t<\/div>\n\t\t<div class=\"container header-container\">\n\t\t\t\t<header class=\"header\">\n\t\t\t<h1 class=\"entry-title header_title\">\n\t\t\t\t\t\t\t\t  \t\t\t\t\t\n\t\t\t\t\t\tWebsite Sustainability And Performance Check\n\t\t\t\t\t\n\t\t\t\t\t\t\t<\/h1>\n\t\t\t<div class=\"centeredContent -lg\">\n\t\t\t\t<p class=\"header_excerpt\">\n\t\t\t\t\tAs a sustainable agency, we believe in websites that excel in both user experience and environmental responsibility. Curious how your website measures up in terms of speed and eco-friendliness? Let's find out your score!\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t\t<div id=\"form\">\n\t\t\t\t<div class=\"entry-content centeredContent -md\" style=\"width: 100%\">\n\t\t\t\t\t<!-- HTML Forms v1.6.4 - https:\/\/wordpress.org\/plugins\/html-forms\/ -->\n<form method=\"post\"  class=\"hf-form hf-form-1384 c-form\" data-id=\"1384\" data-title=\"Performance Check\" data-slug=\"performance-check\" data-message-success=\"Redirecting...\" data-message-invalid-email=\"Sorry, that email address looks invalid.\" data-message-required-field-missing=\"Please fill in the required fields.\" data-message-error=\"Oops. An error occurred.\" data-message-recaptcha-failed=\"reCAPTCHA verification failed. Please try again.\" data-message-recaptcha-low-score=\"Your submission appears to be spam. Please try again.\"><input type=\"hidden\" name=\"_hf_form_id\" value=\"1384\" \/><div style=\"display: none;\"><input type=\"text\" name=\"_hf_h1384\" value=\"\" \/><\/div><div class=\"hf-fields-wrap\"><p class=\"input\">\r\n   <label>Website<\/label>\r\n   <input type=\"url\" name=\"URL\" placeholder=\"https:\/\/www.yourdomain.com\" aria-label=\"Enter the full URL of your website\" required \/>\r\n<\/p>\r\n<!-- <div class=\"cf-turnstile\" style=\"max-width: 200px;overflow: hidden;\" data-sitekey=\"0x4AAAAAAACLWG0YnFzSWoT8\" data-theme=\"light\" data-callback=\"turnstileCallback\"><\/div> -->\r\n<p class=\"submit\">\r\n  <input class=\"c-button -primarySkin\" type=\"submit\" value=\"Go!\" \/>\r\n<\/p><noscript>Damit dieses Formular funktioniert bitte JavaScript aktivieren.<\/noscript><\/div><\/form><!-- \/ HTML Forms -->\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/header>\n<\/section>\n<div id=\"pre-test\">\n<section id=\"intro\" class=\"container\">\n\t<div class=\"intro-columns\">\n\t\t<div class=\"intro-image\">\n\t\t\t<img decoding=\"async\" src=\"https:\/\/conlumina.com\/wp-content\/uploads\/2026\/02\/web-carbon-test.svg\">\n\t\t<\/div>\n\t\t<div class=\"intro-content\">\n\t\t<h2>Speed Up. Carbon Down.<\/h2>\n\t\t<p>\n\t\tDid you know the digital sector emits more CO\u2082 than the entire aviation industry? Fortunately, the carbon footprint of a website can be reduced by up to 75% \u2014 without compromising on performance, aesthetics, or user experience. In fact, the faster and more efficient a website is, the more sustainable it becomes.<\/p>\n\t\t<p style=\"color: var(--color-primary)\"><b>Greening the web is a true win-win \u2014 helping both businesses and the planet thrive.<\/b><\/p>\n\t\t<\/div>\t\t\n\t<\/div>\n<\/section>\n<section id=\"explainer\" class=\"container\">\n\t\n\t<h5>Why Website Performance and Sustainability Go Hand in Hand<\/h5>\n\t<div class=\"horizontal-list\">\n\t\t<ul class=\"u-columns -max-4\">\n\t\t\t<li>\n\t\t\t\t<div class=\"step-item\">\n\t\t\t\t<div class=\"step\">1<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"step-content\">\n\t\t\t\t<h6>Efficient Code and Resource Management<\/h6>\n\t\t\t\t<p>\n\t\t\t\t\tHigh-performance websites are built with clean, efficient code that minimises the amount of data transferred and processed. This not only speeds up load times but also reduces the energy required for data transmission and server operations.\n\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<div class=\"step-item\">\n\t\t\t\t<div class=\"step\">2<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"step-content\">\n\t\t\t\t\t<h6>Optimised Images and Media<\/h6>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tReducing the size of images and other media files means less data to transfer, leading to faster loading times and less energy consumption.\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<div class=\"step-item\">\n\t\t\t\t<div class=\"step\">3<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"step-content\">\n\t\t\t\t<h6>Minimalistic Design<\/h6>\n\t\t\t\t<p>\n\t\t\t\t\tBy focusing on simplicity and usability, we reduce the complexity of our websites, which in turn reduces the computational power needed to render them, saving energy.\n\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<div class=\"step-item\">\n\t\t\t\t<div class=\"step\">4<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"step-content\">\n\t\t\t\t<h6>Green Hosting and Cloud Infrastructure<\/h6>\n\t\t\t\t<p>\n\t\t\t\t\tPartnering with green hosting providers that use renewable energy sources further reduces the carbon footprint of a website. This ensures that the energy required to keep websites online comes from sustainable sources.\n\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/li>\n\t\t<\/ul>\n\t<\/div>\n\t<div class=\"centeredContent\">\n\t\t<a id=\"\" href=\"https:\/\/conlumina.com\/de\/boosting-speed-and-reducing-impact\/\"  class=\"c-button -linkSkin\">\n  Learn More\n\t\t<svg aria-hidden=\"true\" focusable=\"false\" width=\"20\" height=\"20\">\n    \t<use xlink:href=\"#svg_arrow-right\"><\/use>\n  \t<\/svg>\n    <\/a>\t<\/div>\n<\/section>\n\n<section id=\"about\" class=\"container primaryBg\">\n\t<div class=\"header\">\n\t\t\t<h2>\n\t\t\t\t<span class=\"highlight\">\n\t\t\t\t\tAbout Us\n\t\t\t\t<\/span>\n\t\t\t<\/h2>\n\t\t\t<div class=\"centeredContent -lg\">\n\t\t\t<p class=\"header_excerpt\">\n\t\t\t\tConlumina is a sustainable web agency dedicated to creating high-performance, user-centric, and environmentally conscious web solutions. We shoot for the very best in WordPress and web standards.\n\t\t\t<\/p>\n\t\t\t\t\t<a id=\"\" href=\"https:\/\/conlumina.com\/de\/contact\/\"  class=\"c-button -primarySkin\">\n  Let's Talk\n\t<\/a>\t\t\t<\/div>\n\t\t<\/div>\n<\/section>\n\n<section class=\"container\">\n\t<div class=\"overline\">\n\t\tMission and Values\n\t<\/div>\n<div class=\"u-columns -max-3\">\n\t\t\t\t<div class=\"feature\">\n\t\t\t\t\t<div class=\"feature_head\">\n\t\t\t\t\t\t<div class=\"feature_icon\">\n\t\t\t\t\t\t\t<svg width=\"40\" height=\"40\">\n\t\t\t\t\t\t\t\t<use xlink:href=\"#svg_globe\"><\/use>\n\t\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"display -sm feature_title\">\n\t\t\t\t\t\t\t\tPlanet\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"feature_content\">\n\t\t\t\t\t\t<p class=\"feature_description\">\n\t\t\t\t\t\t\tWe help businesses reduce their online carbon footprint by up to 75%, promoting a sustainable digital future.\n\t\t\t\t\t\t<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"feature\">\n\t\t\t\t\t<div class=\"feature_head\">\n\t\t\t\t\t\t<div class=\"feature_icon\">\n\t\t\t\t\t\t\t<svg width=\"40\" height=\"40\">\n\t\t\t\t\t\t\t\t<use xlink:href=\"#svg_accessibility\"><\/use>\n\t\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"display -sm feature_title\">\n\t\t\t\t\t\t\tPeople\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"feature_content\">\n\t\t\t\t\t\t<p class=\"feature_description\">\n\t\t\t\t\t\t\tWe champion a user-centric web, ensuring accessibility, privacy, and ethical digital marketing practices.\n\t\t\t\t\t\t<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"feature\">\n\t\t\t\t\t<div class=\"feature_head\">\n\t\t\t\t\t\t<div class=\"feature_icon\">\n\t\t\t\t\t\t\t<svg width=\"40\" height=\"40\">\n\t\t\t\t\t\t\t\t<use xlink:href=\"#svg_bolt\"><\/use>\n\t\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"display -sm feature_title\">\n\t\t\t\t\t\t\tPerformance\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"feature_content\">\n\t\t\t\t\t\t<p class=\"feature_description\">\n\t\t\t\t\t\t\tWe engineer websites to exacting standards for speed, accessibility and SEO, backed by a top performance guarantee.\n\t\t\t\t\t\t<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n<\/section>\n\n<\/div>\n\n\n\n\n<section id=\"pageScoreResult\" class=\"container\" style=\"display:none\">\n\t<div class=\"entry-content centeredContent -md\">\n\t\t<div class=\"overline\">Analysing:<\/div>\n\t\t<h2 id=\"title\" class=\"display -sm\" style=\"margin-top:0\"><\/h2>\n\t\t<div id=\"results\">\n\t\t\t<div class=\"leftCol\">\n\t\t\t\t<h3 class=\"title -lg\">Performance:\u00a0<span id=\"perf-score\"><\/span><\/h3>\n\t\t\t\t<div class=\"result\">\n\t\t\t\t\n<div id=\"thisBar\" aria-valuemax=\"100\" aria-valuemin=\"0\" aria-valuenow=\"0\" aria-valuetext=\"0%\" role=\"progressbar\" data-state=\"loading\" data-value=\"0\" data-max=\"100\" class=\"c-progressbar\">\n\t<div data-state=\"\" data-value=\"0\" data-max=\"100\" class=\"c-progressbar_indicator\" style=\"transform: translateX(-100%);\"><\/div>\n<\/div>\n<style>.c-progressbar {\n    position: relative;\n    overflow: hidden;\n    background: var(--color-background);\n    border-radius: 99999px;\n    width: 300px;\n    height: 25px;\n}\n.c-progressbar_indicator {\n    background-color: var(--color-surface);\n    width: 100%;\n    height: 100%;\n    transition: transform 660ms cubic-bezier(0.65, 0, 0.35, 1) 0s;\n}<\/style>\n\t\t\t\t<span id=\"thisSpan\"><\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<h3 class=\"title -sm\">We Guarantee:<\/h3>\n\t\t\t\t<div class=\"result\">\n\t\t\t\t\n<div id=\"thatBar\" aria-valuemax=\"100\" aria-valuemin=\"0\" aria-valuenow=\"90\" aria-valuetext=\"90%\" role=\"progressbar\" data-state=\"loading\" data-value=\"90\" data-max=\"100\" class=\"c-progressbar\">\n\t<div data-state=\"\" data-value=\"90\" data-max=\"100\" class=\"c-progressbar_indicator\" style=\"transform: translateX(-10%);\"><\/div>\n<\/div>\n<style>.c-progressbar {\n    position: relative;\n    overflow: hidden;\n    background: var(--color-background);\n    border-radius: 99999px;\n    width: 300px;\n    height: 25px;\n}\n.c-progressbar_indicator {\n    background-color: var(--color-surface);\n    width: 100%;\n    height: 100%;\n    transition: transform 660ms cubic-bezier(0.65, 0, 0.35, 1) 0s;\n}<\/style>\n\t\t\t\t<span id=\"thatSpan\">Good<\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"result overview\">\n\t\t\t\t\t<div>\n\t\t\t\t\t<span>0\u201349<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div>\n\t\t\t\t\t<span>50\u201389<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div>\n\t\t\t\t\t<span>90\u2013100<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<h4 class=\"title -sm\">Did you know?<\/h4>\n\t\t\t\t<p>\n\t\t\t\tGoogle rates page quality in terms of <strong>Performance<\/strong>, <strong>Best Practices<\/strong>, <strong>Accessibility<\/strong>, and <strong>SEO<\/strong>. Our <a href=\"\/pagespeed-guarantee\">PageSpeed Guarantee<\/a> covers all of these categories, ensuring an excellent overall user experience.\n\t\t\t\t<\/p>\n\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t<a id=\"webdev\" href=\"#\" target=\"_blank\" class=\"c-button -linkSkin\">\n  View full audit\n\t\t<svg aria-hidden=\"true\" focusable=\"false\" width=\"20\" height=\"20\">\n    \t<use xlink:href=\"#svg_arrow-right\"><\/use>\n  \t<\/svg>\n    <\/a>\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t\t<div class=\"rightCol\" id=\"screenshot\">\n\t\t\t\t<p id=\"status\">\n\t\t\t\tPlease wait\u2026\n\t\t\t\t<\/p>\n\t\t\t\t<div id=\"roller\" class=\"lds-roller\">\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<hr>\n\t\t<div id=\"carboncheck\">\n\t\t\t\n\t\t\t<div class=\"leftCol\">\n\n\t\t\t<h3 class=\"title -lg\">Sustainability:\u00a0<span id=\"sust-score\"><\/span><\/h3>\n\t\t\t<div class=\"result\">\n\t\t\t\t\n<div id=\"thisBar2\" aria-valuemax=\"100\" aria-valuemin=\"0\" aria-valuenow=\"0\" aria-valuetext=\"0%\" role=\"progressbar\" data-state=\"loading\" data-value=\"0\" data-max=\"100\" class=\"c-progressbar\">\n\t<div data-state=\"\" data-value=\"0\" data-max=\"100\" class=\"c-progressbar_indicator\" style=\"transform: translateX(-100%);\"><\/div>\n<\/div>\n<style>.c-progressbar {\n    position: relative;\n    overflow: hidden;\n    background: var(--color-background);\n    border-radius: 99999px;\n    width: 300px;\n    height: 25px;\n}\n.c-progressbar_indicator {\n    background-color: var(--color-surface);\n    width: 100%;\n    height: 100%;\n    transition: transform 660ms cubic-bezier(0.65, 0, 0.35, 1) 0s;\n}<\/style>\n\t\t\t\t<span id=\"thisSpan2\"><\/span>\n\t\t\t<\/div>\n\t\t\t<h3 class=\"title -sm\">We Guarantee:<\/h3>\n\t\t\t<div class=\"result\">\n\t\t\t\t\n<div id=\"thatBar2\" aria-valuemax=\"100\" aria-valuemin=\"0\" aria-valuenow=\"75\" aria-valuetext=\"75%\" role=\"progressbar\" data-state=\"loading\" data-value=\"75\" data-max=\"100\" class=\"c-progressbar\">\n\t<div data-state=\"\" data-value=\"75\" data-max=\"100\" class=\"c-progressbar_indicator\" style=\"transform: translateX(-25%);\"><\/div>\n<\/div>\n<style>.c-progressbar {\n    position: relative;\n    overflow: hidden;\n    background: var(--color-background);\n    border-radius: 99999px;\n    width: 300px;\n    height: 25px;\n}\n.c-progressbar_indicator {\n    background-color: var(--color-surface);\n    width: 100%;\n    height: 100%;\n    transition: transform 660ms cubic-bezier(0.65, 0, 0.35, 1) 0s;\n}<\/style>\n\t\t\t\t<span id=\"thatSpan2\">Good<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t<div class=\"result overview\"> <div> <span>0\u201349<\/span> <\/div> <div> <span>50\u201374<\/span> <\/div> <div> <span>75\u2013100<\/span> <\/div> <\/div>\n\n\t\t\t<h4 class=\"title -sm\">Did you know?<\/h4>\n\t\t\t<p>\n\t\t\tThe average web page produces ~1.76 grams CO2 per pageview. For a website with 10,000 monthly page views, that's <strong>192 kg CO2 per year<\/strong>. A faster, more efficient website is inherently more sustainable.\n\t\t\t<\/p>\n\t\t\t\n\t\t\t<\/div>\n\t\t\t<div class=\"rightCol\">\n\n\t\t\t<div id=\"carbonresults\">\n\t\t\t\n\t\t\t\n\t\t\t\t<p id=\"status2\">\n\t\t\t\t\tPlease wait\u2026\n\t\t\t\t<\/p>\n\t\t\t\t<div id=\"roller2\" class=\"lds-roller\">\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t\t<div><\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t\t<div id=\"carbon-details\">\n\t\t\t\t\t<div id=\"big-rating\" class=\"rating\"><\/div>\n\t\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\tThis web page is <span id=\"cleaner\">cleaner<\/span><span id=\"dirtier\">dirtier<\/span> than <span id=\"percent\"><\/span> of all web pages globally.\n\t\t\t\t\t<\/p>\n\t\t\t\t\t<p>\n\t\t\t\t\t<span class=\"good\" style=\"font-weight:normal\">Only<\/span><span class=\"bad\" style=\"font-weight:normal\">A hefty<\/span>\u00a0<span id=\"grams\"><\/span>\u00a0grams of CO2 is produced per page load.\n\t\t\t\t\t<\/p>\n\t\t\t\t\t<p>\n\t\t\t\t\tIt appears to be running on <span id=\"renewable\">renewable<\/span><span id=\"non-renewable\">non-renewable<\/span> energy.\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\n\t\t\t\t\n\n\t\t\t<\/div>\n\n\t\t\t\n\t\t<\/div>\n\t<\/div>\n<\/section>\n<section id=\"check-cta\" class=\"container primaryCTA\" style=\"display:none\">\n\t<div class=\"centeredContent -lg\">\n\t\t<div style=\"text-align: center\">\n\t\t\t<h2 class=\"title -lg primary-color\">Want to discuss these results with us?<\/h2>\n\t\t\t<div class=\"largeText\">\n\t\t\t\t<label for=\"email\">Enter your email<\/label> and we'll get back to you shortly.\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<!-- HTML Forms v1.6.4 - https:\/\/wordpress.org\/plugins\/html-forms\/ -->\n<form method=\"post\"  class=\"hf-form hf-form-2182 c-form\" data-id=\"2182\" data-title=\"Follow-Up\" data-slug=\"follow-up\" data-message-success=\"Thank you! We will be in touch soon.\" data-message-invalid-email=\"Sorry, that email address looks invalid.\" data-message-required-field-missing=\"Please fill in the required fields.\" data-message-error=\"Oops. An error occurred.\" data-message-recaptcha-failed=\"reCAPTCHA verification failed. Please try again.\" data-message-recaptcha-low-score=\"Your submission appears to be spam. Please try again.\"><input type=\"hidden\" name=\"_hf_form_id\" value=\"2182\" \/><div style=\"display: none;\"><input type=\"text\" name=\"_hf_h2182\" value=\"\" \/><\/div><div class=\"hf-fields-wrap\"><p>\r\n\t<input type=\"email\" name=\"EMAIL\" id=\"email\" placeholder=\"Your email\" required \/>\r\n  \t<input type=\"url\" name=\"URL\" id=\"url\" hidden style=\"display:none\" \/>\r\n<\/p>\r\n<p>\r\n\t<input class=\"c-button -primarySkin\" type=\"submit\" value=\"Send\" \/>\r\n<\/p><noscript>Damit dieses Formular funktioniert bitte JavaScript aktivieren.<\/noscript><\/div><\/form><!-- \/ HTML Forms -->\n\t<\/div>\n<\/section><script>async function run() {\n    const queryString = window.location.search;\n    const urlParams = new URLSearchParams(queryString);\n    let url = urlParams.get('url');\n    if (!url) {\n        return;\n    }\n    \/\/ Hide default elements\n    document.getElementById('form').style.display = 'none';\n    \/\/ Update contact form & title, show main content\n    document.getElementById('url').value = url;\n    document.getElementById('title').textContent = url;\n    document.getElementById('pageScoreResult').style.display = 'grid';\n    document.getElementById('check-cta').style.display = 'grid';\n    document.getElementById('pre-test').style.display = 'none';\n    url = setUpQuery(url);\n    try {\n        \/\/ --- Run PSI and Green Web in parallel ---\n        const psiPromise = fetch(url).then(r => {\n            if (!r.ok) {\n                lighthouseError(r.status);\n                throw new Error(`HTTP error! status: ${r.status}`);\n            }\n            return r.json();\n        });\n        let testedUrlRaw = urlParams.get('url'); \/\/ original\n        const host = new URL(testedUrlRaw).hostname;\n        \/\/const host = new URL(url).hostname;\n        const greenPromise = fetch(\n            `https:\/\/api.thegreenwebfoundation.org\/api\/v3\/greencheck\/${host}`\n        ).then(r => r.json()).catch(() => ({ green: false })); \/\/ fallback if API fails\n        const [json, greenJson] = await Promise.all([psiPromise, greenPromise]);\n        \/\/ ----------------------------------------\n        if (!json.lighthouseResult) {\n            lighthouseError('Lighthouse result is missing');\n            throw new Error('Lighthouse result is missing');\n        }\n        showInitialContent(json);\n        const lighthouse = json.lighthouseResult;\n        const lighthouseCategories = {\n            'Performance': lighthouse.categories['performance'].score,\n        };\n        showLighthouseCategories(lighthouseCategories);\n        \/\/ Extract bytes + green\n        const bytes = lighthouse.audits['total-byte-weight']?.numericValue || 0;\n        const green = greenJson.green ? 1 : 0;\n        \/\/ --- CO\u2082 calculation ---\n        const isGreenHosting = greenJson.green ? 1 : 0;\n        const carbonData = calculateCarbonData(bytes, isGreenHosting);\n        const testedUrl = new URL(json.id).href;\n        showCarbonContent(carbonData, testedUrl);\n    } catch (error) {\n        console.log('Error fetching data:', error);\n    }\n}\nfunction lighthouseError(error) {\n    let el = document.getElementById('roller');\n    el.style.display = 'none';\n    el = document.getElementById('status');\n    el.textContent = 'Error: ' + error;\n}\nfunction carbonError(error) {\n    let el = document.getElementById('roller2');\n    el.style.display = 'none';\n    el = document.getElementById('status2');\n    el.textContent = 'Error: ' + error;\n}\nfunction setUpQuery(url) {\n    const api = 'https:\/\/www.googleapis.com\/pagespeedonline\/v5\/runPagespeed';\n    const parameters = {\n        url: url, \/\/ Use the raw URL without encoding here\n        category: \"PERFORMANCE\",\n        strategy: \"mobile\",\n    };\n    const query = `${api}?${new URLSearchParams(parameters).toString()}&key=AIzaSyCdvBustXMuAip7_mnNB7_W1bL8oBYoUp8`; \/\/ Simplified query string creation\n    return query;\n}\nfunction displayForm() {\n    let el = document.getElementById('form');\n    el.style.display = 'block';\n}\nfunction showInitialContent(json) {\n    const lighthouse = json.lighthouseResult;\n    \/\/ Update title\n    let el = document.getElementById('title');\n    el.textContent = json.id;\n    document.querySelector('.overline').textContent = 'Results for:';\n    \/\/ Generate the screenshot image\n    el = document.getElementById('screenshot');\n    el.innerHTML = '';\n    const img = document.createElement(\"img\");\n    img.src = lighthouse.audits['final-screenshot'].details.data;\n    el.appendChild(img);\n    \/\/ Set the progress bar value, color & text\n    updateProgressBar(lighthouse.categories['performance'].score * 100);\n    el = document.getElementById('webdev');\n    el.setAttribute('href', `https:\/\/pagespeed.web.dev\/analysis?url=${encodeURIComponent(json.id)}`);\n    el.style.visibility = 'visible';\n}\nfunction updateProgressBar(score) {\n    let el = document.getElementById('thisBar');\n    el.setAttribute('data-value', score);\n    let indicator = el.getElementsByClassName('c-progressbar_indicator')[0];\n    let color = 'var(--colors-amber10)';\n    let grade = 'Average';\n    if (score >= 90) {\n        color = 'var(--colors-green10)';\n        grade = 'Good';\n    } else if (score <= 50) {\n        color = 'var(--colors-tomato10)';\n        grade = 'Poor';\n    }\n    indicator.style.backgroundColor = color;\n    indicator.setAttribute('data-value', score);\n    indicator.style.transform = `translateX(-${100 - score}%)`;\n    el = document.getElementById('thisSpan');\n    el.textContent = grade;\n    el = document.getElementById('perf-score');\n    el.style.color = color;\n    el.textContent = Math.round(score) + ' \/ 100';\n}\nfunction updateCarbonBar(score) {\n    let el = document.getElementById('thisBar2');\n    el.setAttribute('data-value', score);\n    let indicator = el.getElementsByClassName('c-progressbar_indicator')[0];\n    let color = 'var(--colors-amber10)';\n    let grade = 'Average';\n\/*\n    if (score >= 90) {\n        color = 'var(--colors-green10)';\n        grade = 'Excellent';\n    }\n    else*\/ if (score >= 75) {\n        color = 'var(--colors-green9)';\n        grade = 'Clean';\n    }\n    else if (score >= 50) {\n        color = 'var(--colors-amber10)';\n        grade = 'Average';\n    }\/*\n    else if (score >= 25) {\n        color = 'var(--colors-red10)';\n        grade = 'Below Average';\n    }*\/\n    else {\n        color = 'var(--colors-tomato10)';\n        grade = 'Dirty';\n    }\n    indicator.style.backgroundColor = color;\n    indicator.setAttribute('data-value', score);\n    indicator.style.transform = `translateX(-${100 - score}%)`;\n    el = document.getElementById('thisSpan2');\n    el.textContent = grade;\n    el = document.getElementById('sust-score');\n    el.style.color = color;\n    el.textContent = Math.round(score) + ' \/ 100';\n    el = document.getElementById('big-rating');\n    el.style.backgroundColor = color;\n    el.style.color = 'white';\n    \n}\n\/*\nfunction updateCarbonBar(score) {\n    let el = document.getElementById('thisBar2');\n    el.setAttribute('data-value', score);\n    let indicator = el.getElementsByClassName('c-progressbar_indicator')[0];\n    \/\/ Default values (Average)\n    let color = 'var(--colors-amber10)';\n    let grade = 'Average';\n    if (score >= 90) {\n        color = 'var(--colors-green10)';\n        grade = 'Excellent';\n    }\n    else if (score >= 75) {\n        color = 'var(--colors-green8)';\n        grade = 'Good';\n    }\n    else if (score >= 50) {\n        color = 'var(--colors-amber10)';\n        grade = 'Average';\n    }\n    else if (score >= 25) {\n        color = 'var(--colors-red10)';\n        grade = 'Below Average';\n    }\n    else {\n        color = 'var(--colors-tomato10)';\n        grade = 'Poor';\n    }\n    indicator.style.backgroundColor = color;\n    indicator.setAttribute('data-value', score);\n    indicator.style.transform = `translateX(-${100 - score}%)`;\n    \/\/ Update text labels\n    document.getElementById('thisSpan2').textContent = grade;\n    document.getElementById('sust-score').style.color = color;\n    document.getElementById('sust-score').textContent = Math.round(score) + ' \/ 100';\n    \/\/ Guarantee section\n    let guaranteeSpan = document.getElementById('thatSpan2');\n    if (guaranteeSpan) guaranteeSpan.textContent = 'Good';\n    let ratingTag = document.getElementById('big-rating');\n    if (ratingTag) {\n        ratingTag.style.backgroundColor = color;\n        ratingTag.style.color = 'white';\n    }\n}\n*\/\nfunction showLighthouseCategories(lighthouseCategories) {\n    let el = document.getElementById('thisBar');\n    for (let key in lighthouseCategories) {\n        console.log(`${key}: ${lighthouseCategories[key]}`);\n    }\n    \/\/ Update the data-value attribute or other relevant UI elements as needed\n}\nfunction showLighthouseContent(lighthouseMetrics) {\n    let el = document.getElementById('pageScoreResult');\n    const lighthouseHeader = document.createElement('h2');\n    lighthouseHeader.textContent = \"Detailed Results\";\n    el.appendChild(lighthouseHeader);\n    for (let key in lighthouseMetrics) {\n        const p = document.createElement('p');\n        p.textContent = `${key}: ${lighthouseMetrics[key]}`;\n        el.appendChild(p);\n    }\n}\nfunction showCarbonContent(carbonData, url) {\n    const goodElements = document.querySelectorAll('.good');\n    const badElements = document.querySelectorAll('.bad');\n    const referenceLetter = \"C\"; \/\/ The letter to compare with\n    const higherThanReference = isRatingHigherThan(carbonData.rating, referenceLetter);\n    goodElements.forEach(el => el.style.display = higherThanReference ? 'inline' : 'none');\n    badElements.forEach(el => el.style.display = higherThanReference ? 'none' : 'inline');\n    \/\/ Set carbon rating\n    const spans = document.querySelectorAll('.rating');\n    spans.forEach(el => el.textContent = `${carbonData.rating}`);\n    \/\/ Cleaner or Dirtier\n    const cleanerSpan = document.getElementById('cleaner');\n    const dirtierSpan = document.getElementById('dirtier');\n    const percentageSpan = document.getElementById('percent');\n    if (carbonData.cleanerThan * 100 > 50) {\n        cleanerSpan.style.display = 'inline';\n        dirtierSpan.style.display = 'none';\n        percentageSpan.textContent = `${Math.round(carbonData.cleanerThan * 100)}%`;\n    } else {\n        cleanerSpan.style.display = 'none';\n        dirtierSpan.style.display = 'inline';\n        percentageSpan.textContent = `${Math.round(100 - carbonData.cleanerThan * 100)}%`;\n    }\n    \/\/ CO2 Grams\n    const gramsSpan = document.getElementById('grams');\n    gramsSpan.textContent = `${carbonData.statistics.co2.grid.grams.toFixed(2)}`;\n    \/\/ Renewable or Non-Renewable Energy\n    const renewableSpan = document.getElementById('renewable');\n    const nonRenewableSpan = document.getElementById('non-renewable');\n    if (carbonData.green == true ) {\n        renewableSpan.style.display = 'inline';\n        nonRenewableSpan.style.display = 'none';\n    } else {\n        renewableSpan.style.display = 'none';\n        nonRenewableSpan.style.display = 'inline';\n    }\n    updateCarbonBar(carbonData.cleanerThan * 100);\n    el = document.getElementById('carbonresults');\n    el.style.display = 'none';\n    el = document.getElementById('carbon-details');\n    el.style.display = 'block';\n\/*\n    el = document.getElementById('wcc');\n    el.setAttribute('href', `https:\/\/www.websitecarbon.com\/website\/${formatURL(url)}`);\n    el.style.visibility = 'visible';\n    *\/\n}\nfunction isRatingHigherThan(rating, referenceLetter) {\n    \/\/ Convert the rating letters to their Unicode values\n    const ratingValue = rating.charCodeAt(0);\n    const referenceValue = referenceLetter.charCodeAt(0);\n    \/\/ Compare the Unicode values in reverse because lower letters represent better ratings\n    return ratingValue < referenceValue; \/\/ Lower letter means a better rating\n}\nfunction calculateRatingPercentage(co2PerPageview) {\n    const minCO2 = 0.095; \/\/ CO2e for A+\n    const maxCO2 = 0.847; \/\/ CO2e for F\n    const rangeAdjustment = 90; \/\/ Adjust the range to fit the A=90 scale\n    if (co2PerPageview <= minCO2) {\n        return 100; \/\/ A+ rating\n    } else if (co2PerPageview >= maxCO2) {\n        return 10; \/\/ F rating\n    } else {\n        \/\/ Linear interpolation to calculate percentage\n        return (\n            ((maxCO2 - co2PerPageview) \/ (maxCO2 - minCO2)) * rangeAdjustment + 10\n        );\n    }\n}\nfunction calculateCarbonData(bytes, isGreen) {\n    \/\/ --- Constants based on WebsiteCarbon-style methodology ---\n    const BYTES_PER_GB = 1024 * 1024 * 1024;\n    \/\/ Energy intensity of data transfer (kWh per GB)\n    const KWH_PER_GB = 0.81; \/\/ typical value used in web-sustainability literature\n    \/\/ Global average carbon intensity of electricity (grams CO\u2082 per kWh)\n    const GRID_INTENSITY = 442; \/\/ gCO\u2082\/kWh\n    \/\/ If hosted on \"green\" infrastructure, we assume a big reduction in effective emissions\n    \/\/ (not zero, because networks and devices still use mixed energy)\n    const GREEN_FACTOR = 0.3; \/\/ 70% lower for green hosting (tweak as you like)\n    \/\/ 1) Estimate energy use from data transfer\n    const dataGb = bytes \/ BYTES_PER_GB;\n    let gramsCO2 = dataGb * KWH_PER_GB * GRID_INTENSITY;\n    \/\/ 3) Clamp gramsCO2 to a sane numeric range\n    if (!Number.isFinite(gramsCO2) || gramsCO2 < 0) {\n        gramsCO2 = 0;\n    }\n    \/\/ 4) Compute cleanerThan\n    let cleanerThan = co2ToCleanerThan(gramsCO2);\n    \/* Gentle green hosting bump (+0.03) ---\n    if (isGreen) {\n        cleanerThan = Math.min(cleanerThan + 0.03, 1);\n    }*\/\n    \/\/ 5) Convert CO\u2082 value into a rating (no auto-bump here)\n    const rating = ratingFromCleanerThan(cleanerThan, false);\n  \n    console.log(\"RATING DEBUG:\", {\n        gramsCO2,\n        cleanerThan,\n        rating\n    });\n    \/\/ 6) Return an object that looks like WebsiteCarbon\u2019s response\n    return {\n        rating,                    \/\/ \"A\"\u2013\"F\"\n        cleanerThan,               \/\/ 0\u20131\n        green: isGreen,            \/\/ boolean\n        statistics: {\n            co2: {\n                grid: {\n                    grams: gramsCO2\n                }\n            }\n        }\n    };\n}\n\/*\nfunction ratingFromCleanerThan(cleaner, isGreen) {\n    let letter;\n    \/\/ --- Option A rating thresholds ---\n    if (cleaner >= 0.98) letter = \"A+\";\n    else if (cleaner >= 0.90) letter = \"A\";\n    else if (cleaner >= 0.75) letter = \"B\";\n    else if (cleaner >= 0.50) letter = \"C\";\n    else if (cleaner >= 0.25) letter = \"D\";\n    else if (cleaner >= 0.10) letter = \"E\";\n    else letter = \"F\";\n    \/\/ Always false now\n    \/\/ --- Green hosting = half-step improvement ---\n    if (isGreen) {\n        if (letter === \"A+\") letter = \"A+\"; \/\/ stays A+\n        else if (letter === \"A\") letter = \"A+\";\n        else if (letter === \"B\") letter = \"A\";\n        else if (letter === \"C\") letter = \"B\";\n        else if (letter === \"D\") letter = \"C\";\n        else if (letter === \"E\") letter = \"D\";\n        else if (letter === \"F\") letter = \"E\";\n    }\n    return letter;\n}\n*\/\nfunction ratingFromCleanerThan(cleaner, isGreen) {\n    let letter;\n    \/\/ Calibrated thresholds\n    if (cleaner >= 0.97) letter = \"A+\";\n    else if (cleaner >= 0.85) letter = \"A\";\n    else if (cleaner >= 0.70) letter = \"B\";\n    else if (cleaner >= 0.50) letter = \"C\";\n    else if (cleaner >= 0.20) letter = \"D\";\n    else if (cleaner >= 0.10) letter = \"E\";\n    else letter = \"F\";\n    \/\/ Green hosting no longer affects rating\n    \/\/ (education opportunity: \"green hosting is not a magic shortcut\")\n    return letter;\n}\n\/*\nfunction co2ToCleanerThan(grams) {\n \n    \/\/ WebsiteCarbon-like model\n    const MIN = 0.02;   \/\/ typical ultra-clean page\n    const MAX = 4.0;    \/\/ pathological websites\n    \/\/ clamp to realistic bounds\n    const g = Math.min(Math.max(grams, MIN), MAX);\n    \/\/ scale in log-space between MIN and MAX\n    const cleanerThan = 1 - ((Math.log(g) - Math.log(MIN)) \/ (Math.log(MAX) - Math.log(MIN)));\n    return Math.min(Math.max(cleanerThan, 0), 1);\n}\nfunction co2ToCleanerThan(grams) {\n    \/\/ Realistic modern web boundaries (CCM calibrated)\n    const MIN = 0.02;   \/\/ ultra-optimised static sites\n    const MAX = 4.0;    \/\/ extremely heavy modern sites\n    \/\/ clamp grams to range\n    const g = Math.min(Math.max(grams, MIN), MAX);\n    \/\/ natural log scaling\n    const logMin = Math.log(MIN);\n    const logMax = Math.log(MAX);\n    const logG = Math.log(g);\n    \/\/ map log value to 0\u20131 (0 = worst, 1 = best)\n    let cleanerThan = (logMax - logG) \/ (logMax - logMin);\n    \/\/ clamp final output\n    return Math.min(Math.max(cleanerThan, 0), 1);\n}\n* \/\nfunction co2ToCleanerThan(grams) {\n    \/\/ Clamp extremes\n    const g = Math.max(0.02, Math.min(grams, 4.0));\n    \/\/ FINAL CALIBRATED VALUES\n    const midpoint = Math.log(0.20); \/\/ where cleanerThan = 0.50\n    const steepness = 5.8;           \/\/ curve steepness\n    \/\/ Logistic percentile in log-space\n    const percentile = 1 \/ (1 + Math.exp(steepness * (Math.log(g) - midpoint)));\n    \/\/ We invert because \"cleaner\" = lower grams\n    const cleanerThan = 1 - percentile;\n    return Math.min(Math.max(cleanerThan, 0), 1);\n}\n* \/\nfunction co2ToCleanerThan(grams) {\n    console.log('co2ToCleanerThan input grams:');\n    console.log(grams);\n    const g = Math.max(0.02, Math.min(grams, 4.0));\n    const midpoint = Math.log(0.20);\n    const steepness = 5.8;\n    \/\/ *** NOTE THE MINUS SIGN BELOW ***\n    const percentile = 1 \/ (1 + Math.exp(-steepness * (Math.log(g) - midpoint)));\n    const cleanerThan = 1 - percentile;\n    const result = Math.min(Math.max(cleanerThan, 0), 1);\n    console.log('co2ToCleanerThan calculation result:');\n    console.log(result);\n    \n    return result;\n}\n*\/\nfunction co2ToCleanerThan(grams) {\n    \/\/ Clamp to sane bounds for modern websites\n    const g = Math.max(0.02, Math.min(grams, 4.0));\n    \/\/ Logistic in log-space, calibrated for modern web\n    const MIDPOINT = Math.log(0.57); \/\/ \u2248 0.57 g -> ~50%\n    const STEEPNESS = 1.15;\n    const cleanerThan = 1 \/ (1 + Math.exp(\n        STEEPNESS * (Math.log(g) - MIDPOINT)\n    ));\n    return Math.min(Math.max(cleanerThan, 0), 1);\n}\nfunction formatURL(url) {\n    return url.replace(\/https?:\\\/\\\/(www\\.)?\/, '') \/\/ Remove protocol and \"www.\"\n        .replace(\/\\.\/g, '-') \/\/ Replace dots with hyphens\n        .replace(\/\\\/$\/, ''); \/\/ Remove trailing slash if present\n}\nrun();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>As a sustainable agency, we believe in websites that excel in both user experience and environmental responsibility. Curious how your website measures up in terms of speed and eco-friendliness? Let&#8217;s find out your score!<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","footnotes":""},"categories":[],"class_list":["post-1938","page","type-page","status-publish","hentry"],"meta_box":{"ticker_image":[],"related_testimonial":"","section_group":[]},"_links":{"self":[{"href":"https:\/\/conlumina.com\/de\/wp-json\/wp\/v2\/pages\/1938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/conlumina.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/conlumina.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/conlumina.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/conlumina.com\/de\/wp-json\/wp\/v2\/comments?post=1938"}],"version-history":[{"count":6,"href":"https:\/\/conlumina.com\/de\/wp-json\/wp\/v2\/pages\/1938\/revisions"}],"predecessor-version":[{"id":2426,"href":"https:\/\/conlumina.com\/de\/wp-json\/wp\/v2\/pages\/1938\/revisions\/2426"}],"wp:attachment":[{"href":"https:\/\/conlumina.com\/de\/wp-json\/wp\/v2\/media?parent=1938"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/conlumina.com\/de\/wp-json\/wp\/v2\/categories?post=1938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}