{"url":"https://play.ee/","date":"2026-07-15","siteName":"Perfectly formed web development team - gotoAndPlay","overall":78,"reasoning":"Performance is excellent (94 mobile) with clean Core Web Vitals, but security configuration is critically weak (20/100 headers, HTTP does not redirect to HTTPS). This security gap significantly drags the SEO/Security budget despite strong accessibility (2 moderate violations) and light page weight. Image assets lack explicit dimensions (52 images), creating CLS risk despite the 0.000 lab score. HTML validation errors (7 found) indicate structural issues in the head/body that need correction.","confidence":"high","fixes":[{"priority":1,"title":"Force HTTPS redirect for all HTTP traffic","impact":"Security, Data Integrity","problem":"Security Headers audit shows http://play.ee/ does not redirect to HTTPS, allowing unencrypted connections.","solution":"Configure the web server (Apache/Nginx) to return a 301 redirect for all HTTP requests:\n```apache\nRewriteEngine On\nRewriteCond %{HTTPS} off\nRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\n```"},{"priority":1,"title":"Add HSTS and X-Content-Type-Options headers","impact":"Transport Security, MIME Sniffing","problem":"HSTS and X-Content-Type-Options are missing; Security Headers grade is 20/100.","solution":"Add these headers to the server response:\n```apache\nHeader always set Strict-Transport-Security \"max-age=63072000; includeSubDomains; preload\"\nHeader always set X-Content-Type-Options \"nosniff\"\n```"},{"priority":2,"title":"Add explicit width and height to all images","impact":"CLS, Layout Stability","problem":"HTML Inventory shows 52 images without width/height attributes, risking layout shifts.","solution":"Ensure every `<img>` tag includes intrinsic dimensions:\n```html\n<img src=\"image.svg\" alt=\"Description\" width=\"300\" height=\"200\">\n```"},{"priority":2,"title":"Fix W3C HTML validation errors","impact":"SEO, Rendering Consistency","problem":"W3C Validator reports 7 errors including malformed `<noscript>`/`<iframe>` in `<head>` and stray end tags.","solution":"Move the Google Tag Manager `<noscript>` iframe outside the `<head>` section and fix the `<meta>` generator tag attributes to comply with HTML5 standards."},{"priority":2,"title":"Improve Accessibility Landmarks","impact":"Screen Reader Navigation","problem":"HTML Inventory notes missing `<main>` landmark and skip-to-content link; axe reports `landmark-unique` and `region` violations.","solution":"Wrap the primary content in `<main>` and add a skip link at the top:\n```html\n<a href=\"#main-content\" class=\"skip-link\">Skip to content</a>\n<main id=\"main-content\">...</main>\n```"}],"coverage":{"pct":100,"missing":[]},"psiSnapshot":{"rows":[{"pageUrl":null,"perfMobile":94,"perfDesktop":100,"lcpMobileMs":2518.5,"lcpDesktopMs":571.5179193479519,"clsMobile":0,"clsDesktop":0.007517377582125259}]},"optimizationChecklist":{"items":[{"id":"caching","title":"Page caching plugin / CDN active","status":"pass","detail":"Caching plugin detected (WP Rocket)","evidence":["HTML markers: WP Rocket","generator: WP Rocket 3.22.0.3"]},{"id":"lazyload","title":"Images lazy-loaded","status":"n/a","detail":"No raster <img> elements found (39 SVGs, 13 placeholders excluded).","evidence":[]},{"id":"heroEager","title":"Hero image eagerly loaded","status":"n/a","detail":"No raster <img> elements found (39 SVGs, 13 placeholders excluded).","evidence":[]},{"id":"heroBackground","title":"Hero is a real <img> (not a CSS background-image)","status":"n/a","detail":"No CSS background-images detected on raster-image-eligible elements.","evidence":[]},{"id":"responsive","title":"Responsive images (srcset / <picture>)","status":"n/a","detail":"Only 0 raster images on the page (39 SVGs, 13 placeholders excluded) — responsive-image rule does not apply.","evidence":[]},{"id":"imageSizes","title":"Reasonable number of image sizes","status":"n/a","detail":"Too few raster images to evaluate srcset width variety.","evidence":[]},{"id":"scriptsFooter","title":"JS scripts not blocking in <head>","status":"pass","detail":"No render-blocking scripts in <head>.","evidence":[]}],"summary":{"passed":2,"warned":0,"failed":0,"notApplicable":5},"priorities":[]}}