{
    "id": "aud_woKRKTYYaxaWGB8LgKN8",
    "object": "audit",
    "result_url": "https://lightscore.dev/api/v1/audits/aud_woKRKTYYaxaWGB8LgKN8",
    "status": "completed",
    "url": "https://blog.nickesselman.nl/",
    "device": "mobile",
    "categories": [
        "performance",
        "accessibility",
        "seo",
        "best_practices"
    ],
    "runs": 1,
    "regions": [
        "fra"
    ],
    "lighthouse_version": "12.8.2",
    "credits_cost": 0,
    "results": [
        {
            "region": "fra",
            "status": "completed",
            "scores": {
                "performance": 79,
                "accessibility": 95,
                "seo": 92,
                "best_practices": 96
            },
            "metrics": {
                "lcp_ms": 4056,
                "cls": 0,
                "tbt_ms": 103,
                "fcp_ms": 2675,
                "speed_index_ms": 5134,
                "tti_ms": 4125
            },
            "report": {
                "json_url": "https://lightscore-reports.b-cdn.net/aud_woKRKTYYaxaWGB8LgKN8/fra.json?token=HS256-3QTUxT_4bjVL0R2q7r1p7aZYd2KzMmVidx-9jUXKa1I&expires=1785333517",
                "html_url": "https://lightscore-reports.b-cdn.net/aud_woKRKTYYaxaWGB8LgKN8/fra.html?token=HS256-2dUaucixuvl_y2aTFgaYOBB_AjKu4WkaoUe9qqsk_IE&expires=1785333517"
            },
            "checks": {
                "reachability": {
                    "status": "ok",
                    "duration_ms": 336,
                    "http_status": 200,
                    "final_url": "https://blog.nickesselman.nl/",
                    "redirects": 0,
                    "ip": "172.67.141.120",
                    "http_version": "1.1",
                    "tls": {
                        "protocol": "TLSv1.3",
                        "cipher": "TLS_AES_256_GCM_SHA384",
                        "issuer": "Google Trust Services",
                        "valid_to": "Aug 27 02:17:38 2026 GMT",
                        "days_to_expiry": 33
                    },
                    "ttfb_ms": 256,
                    "total_ms": 336,
                    "phases": {
                        "dns_ms": 80,
                        "tcp_ms": 0,
                        "tls_ms": 0,
                        "ttfb_ms": 256,
                        "download_ms": 0
                    }
                },
                "headers": {
                    "status": "ok",
                    "duration_ms": 0,
                    "server": "cloudflare",
                    "content_type": "text/html",
                    "cdn": "cloudflare",
                    "cookies": null,
                    "security": {
                        "hsts": false,
                        "csp": false,
                        "x_frame_options": null,
                        "x_content_type_options": null,
                        "referrer_policy": null,
                        "permissions_policy": null,
                        "coop": null,
                        "coep": false,
                        "corp": null
                    },
                    "security_grade": {
                        "score": 0,
                        "grade": "F"
                    }
                },
                "caching": {
                    "status": "ok",
                    "duration_ms": 0,
                    "cache_control": null,
                    "etag": false,
                    "last_modified": false,
                    "expires": null,
                    "age_s": null,
                    "max_age_s": null,
                    "cacheable": null
                },
                "seo": {
                    "status": "ok",
                    "duration_ms": 0,
                    "title": "Nick's Blogs &amp; Adventures",
                    "title_length": 29,
                    "meta_description": "Trip journals, build notes, and long-form travel stories from Nick Esselman.",
                    "meta_description_length": 76,
                    "canonical": "https://blog.nickesselman.nl/",
                    "meta_robots": "index,follow,max-snippet:-1,max-image-preview:large,max-video-preview:-1",
                    "viewport": true,
                    "lang": "en",
                    "h1_count": 1,
                    "favicon": true,
                    "open_graph": {
                        "title": "Nick's Blogs &amp; Adventures",
                        "description": "Trip journals, build notes, and long-form travel stories from Nick Esselman.",
                        "image": "https://cdn.nickesselman.nl/blogimages/moonshot/cover.png",
                        "type": "website",
                        "url": "https://blog.nickesselman.nl/"
                    },
                    "twitter_card": {
                        "card": "summary_large_image",
                        "title": "Nick's Blogs &amp; Adventures",
                        "description": "Trip journals, build notes, and long-form travel stories from Nick Esselman.",
                        "image": "https://cdn.nickesselman.nl/blogimages/moonshot/cover.png"
                    },
                    "json_ld": {
                        "present": true,
                        "count": 3,
                        "types": []
                    }
                },
                "archive": {
                    "status": "ok",
                    "duration_ms": 533,
                    "archived": true,
                    "bytes": 22956
                },
                "lighthouse": {
                    "status": "ok",
                    "duration_ms": 47198,
                    "scores": {
                        "performance": 79,
                        "accessibility": 95,
                        "seo": 92,
                        "best_practices": 96
                    },
                    "metrics": {
                        "lcp_ms": 4056,
                        "cls": 0,
                        "tbt_ms": 103,
                        "fcp_ms": 2675,
                        "speed_index_ms": 5134,
                        "tti_ms": 4125
                    },
                    "network": {
                        "total": 35,
                        "kept": 35,
                        "requests": [
                            {
                                "url": "https://blog.nickesselman.nl/",
                                "type": "Document",
                                "status": 200,
                                "mime": "text/html",
                                "start_ms": 0,
                                "duration_ms": 171,
                                "transfer_size": 6679
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/assets/0.R7eHpXYR.css",
                                "type": "Stylesheet",
                                "status": 200,
                                "mime": "text/css",
                                "start_ms": 303,
                                "duration_ms": 0,
                                "transfer_size": 7819
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/assets/2.DQWSdIOu.css",
                                "type": "Stylesheet",
                                "status": 200,
                                "mime": "text/css",
                                "start_ms": 304,
                                "duration_ms": 13,
                                "transfer_size": 355
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/entry/start.Dj_7NtpF.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 314,
                                "duration_ms": 3,
                                "transfer_size": 406
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/nOSu9Ej9.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 315,
                                "duration_ms": 56,
                                "transfer_size": 12176
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/c58GQygx.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 317,
                                "duration_ms": 20,
                                "transfer_size": 4066
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/entry/app.Cz7MyDtP.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 317,
                                "duration_ms": 56,
                                "transfer_size": 3167
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/IHki7fMi.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 317,
                                "duration_ms": 68,
                                "transfer_size": 611
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/nodes/0.YBN5dtmp.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 317,
                                "duration_ms": 74,
                                "transfer_size": 15051
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/tNh32c-h.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 317,
                                "duration_ms": 77,
                                "transfer_size": 855
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/BjJOmXmZ.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 317,
                                "duration_ms": 76,
                                "transfer_size": 1018
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/9ynI9Clk.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 317,
                                "duration_ms": 75,
                                "transfer_size": 679
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/CgU5AtxT.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 317,
                                "duration_ms": 76,
                                "transfer_size": 726
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/nodes/2.CzfDkffG.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 317,
                                "duration_ms": 82,
                                "transfer_size": 3397
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/Dpw3k670.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 317,
                                "duration_ms": 83,
                                "transfer_size": 863
                            },
                            {
                                "url": "https://unpkg.com/leaflet@1.9.4/dist/leaflet.css",
                                "type": "Stylesheet",
                                "status": 200,
                                "mime": "text/css",
                                "start_ms": 317,
                                "duration_ms": 133,
                                "transfer_size": 4043
                            },
                            {
                                "url": "https://translate.google.com/translate_a/element.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 337,
                                "duration_ms": 120,
                                "transfer_size": 26989
                            },
                            {
                                "url": "https://blog.nickesselman.nl/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "application/javascript",
                                "start_ms": 337,
                                "duration_ms": 67,
                                "transfer_size": 1055
                            },
                            {
                                "url": "https://fonts.googleapis.com/css2",
                                "type": "Stylesheet",
                                "status": 200,
                                "mime": "text/css",
                                "start_ms": 337,
                                "duration_ms": 116,
                                "transfer_size": 1016
                            },
                            {
                                "url": "https://www.gstatic.com/_/translate_http/_/ss/k=translate_http.tr.zZZZhVqDDCw.L.W.O/am=BIAABw/d=0/rs=AN8SPfpWxivXbFD2WhpIdS-DPbQSwnZZjQ/m=el_main_css",
                                "type": "Stylesheet",
                                "status": 200,
                                "mime": "text/css",
                                "start_ms": 477,
                                "duration_ms": 100,
                                "transfer_size": 4688
                            },
                            {
                                "url": "https://translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.de.KZR7Dm5-GVE.O/am=BIAABw/d=1/exm=el_conf/ed=1/rs=AN8SPfoqEmBHxdRSqc3jJOqp59XGCE_eyw/m=el_main",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 477,
                                "duration_ms": 160,
                                "transfer_size": 68636
                            },
                            {
                                "url": "https://fonts.gstatic.com/s/spacegrotesk/v22/V8mDoQDjQSkFtoMM3T6r8E7mPbF4C_k3HqU.woff2",
                                "type": "Font",
                                "status": 200,
                                "mime": "font/woff2",
                                "start_ms": 637,
                                "duration_ms": 0,
                                "transfer_size": 22861
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/nodes/1.JewGY9xk.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 537,
                                "duration_ms": 0,
                                "transfer_size": 1669
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/assets/1.cEg81EAM.css",
                                "type": "Stylesheet",
                                "status": 200,
                                "mime": "text/css",
                                "start_ms": 537,
                                "duration_ms": 20,
                                "transfer_size": 639
                            },
                            {
                                "url": "https://blog.nickesselman.nl/api/readers",
                                "type": "Fetch",
                                "status": 200,
                                "mime": "application/json",
                                "start_ms": 617,
                                "duration_ms": 80,
                                "transfer_size": 434
                            },
                            {
                                "url": "https://blog.nickesselman.nl/api/live-stats",
                                "type": "Fetch",
                                "status": 200,
                                "mime": "application/json",
                                "start_ms": 617,
                                "duration_ms": 176,
                                "transfer_size": 621
                            },
                            {
                                "url": "https://fonts.gstatic.com/s/i/productlogos/translate/v14/24px.svg",
                                "type": "Image",
                                "status": 200,
                                "mime": "image/svg+xml",
                                "start_ms": 737,
                                "duration_ms": 73,
                                "transfer_size": 3367
                            },
                            {
                                "url": "https://www.gstatic.com/images/branding/googlelogo/1x/googlelogo_color_42x16dp.png",
                                "type": "Image",
                                "status": 200,
                                "mime": "image/png",
                                "start_ms": 737,
                                "duration_ms": 76,
                                "transfer_size": 1205
                            },
                            {
                                "url": "https://translate-pa.googleapis.com/v1/supportedLanguages",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 853,
                                "duration_ms": 140,
                                "transfer_size": 3328
                            },
                            {
                                "url": "https://blog.nickesselman.nl/oldfavicon.svg",
                                "type": "Other",
                                "status": 200,
                                "mime": "image/svg+xml",
                                "start_ms": 853,
                                "duration_ms": 20,
                                "transfer_size": 1074
                            },
                            {
                                "url": "https://cdn.nickesselman.nl/blogimages/moonshot/cover.png",
                                "type": "Image",
                                "status": 200,
                                "mime": "image/png",
                                "start_ms": 1504,
                                "duration_ms": 137,
                                "transfer_size": 4620442
                            },
                            {
                                "url": "https://cdn.nickesselman.nl/blogimages/shipwrecked/campfiremain.jpg",
                                "type": "Image",
                                "status": 200,
                                "mime": "image/jpeg",
                                "start_ms": 1511,
                                "duration_ms": 26,
                                "transfer_size": 672451
                            },
                            {
                                "url": "https://cdn.nickesselman.nl/blogimages/neighborhood/populated.webp",
                                "type": "Image",
                                "status": 200,
                                "mime": "image/webp",
                                "start_ms": 1512,
                                "duration_ms": 65,
                                "transfer_size": 173638
                            },
                            {
                                "url": "https://cdn.nickesselman.nl/blogimages/undercity/group.webp",
                                "type": "Image",
                                "status": 200,
                                "mime": "image/webp",
                                "start_ms": 1513,
                                "duration_ms": 64,
                                "transfer_size": 335491
                            },
                            {
                                "url": "https://cdn.nickesselman.nl/blogimages/juice/main.webp",
                                "type": "Image",
                                "status": 200,
                                "mime": "image/webp",
                                "start_ms": 1513,
                                "duration_ms": 44,
                                "transfer_size": 368788
                            }
                        ]
                    },
                    "opportunities": [
                        {
                            "id": "uses-responsive-images",
                            "title": "Properly size images",
                            "savings_ms": 20450,
                            "savings_bytes": 5732718
                        },
                        {
                            "id": "modern-image-formats",
                            "title": "Serve images in next-gen formats",
                            "savings_ms": 19520,
                            "savings_bytes": 4606610
                        },
                        {
                            "id": "render-blocking-resources",
                            "title": "Eliminate render-blocking resources",
                            "savings_ms": 1254,
                            "savings_bytes": 0
                        },
                        {
                            "id": "unused-javascript",
                            "title": "Reduce unused JavaScript",
                            "savings_ms": 180,
                            "savings_bytes": 40769
                        },
                        {
                            "id": "uses-optimized-images",
                            "title": "Efficiently encode images",
                            "savings_ms": 0,
                            "savings_bytes": 196734
                        },
                        {
                            "id": "offscreen-images",
                            "title": "Defer offscreen images",
                            "savings_ms": 0,
                            "savings_bytes": 3367
                        }
                    ],
                    "diagnostics": {
                        "dom_nodes": 188,
                        "main_thread_ms": 20596,
                        "bootup_ms": 704,
                        "total_bytes": 6370303,
                        "server_latency_ms": 165
                    },
                    "resource_summary": [
                        {
                            "type": "total",
                            "count": 35,
                            "transfer_bytes": 6370303
                        },
                        {
                            "type": "image",
                            "count": 7,
                            "transfer_bytes": 6175382
                        },
                        {
                            "type": "script",
                            "count": 17,
                            "transfer_bytes": 144692
                        },
                        {
                            "type": "font",
                            "count": 1,
                            "transfer_bytes": 22861
                        },
                        {
                            "type": "stylesheet",
                            "count": 6,
                            "transfer_bytes": 18560
                        },
                        {
                            "type": "document",
                            "count": 1,
                            "transfer_bytes": 6679
                        },
                        {
                            "type": "other",
                            "count": 3,
                            "transfer_bytes": 2129
                        },
                        {
                            "type": "media",
                            "count": 0,
                            "transfer_bytes": 0
                        },
                        {
                            "type": "third-party",
                            "count": 9,
                            "transfer_bytes": 136133
                        }
                    ],
                    "third_parties": [
                        {
                            "entity": "Other Google APIs/SDKs",
                            "blocking_ms": 201,
                            "transfer_bytes": 98953
                        },
                        {
                            "entity": "Google Fonts",
                            "blocking_ms": 0,
                            "transfer_bytes": 27244
                        },
                        {
                            "entity": "Google CDN",
                            "blocking_ms": 0,
                            "transfer_bytes": 5893
                        },
                        {
                            "entity": "Unpkg",
                            "blocking_ms": 0,
                            "transfer_bytes": 4043
                        }
                    ],
                    "audit_details": {
                        "seo": [
                            {
                                "id": "robots-txt",
                                "title": "robots.txt is not valid",
                                "score": 0
                            }
                        ],
                        "accessibility": [
                            {
                                "id": "button-name",
                                "title": "Buttons do not have an accessible name",
                                "score": 0
                            },
                            {
                                "id": "label-content-name-mismatch",
                                "title": "Elements with visible text labels do not have matching accessible names.",
                                "score": 0
                            }
                        ],
                        "best_practices": [
                            {
                                "id": "errors-in-console",
                                "title": "Browser errors were logged to the console",
                                "score": 0
                            }
                        ]
                    },
                    "lh_version": "12.8.2",
                    "machine_class": "fly-performance-2x",
                    "per_run": [
                        {
                            "scores": {
                                "performance": 79,
                                "accessibility": 95,
                                "seo": 92,
                                "best_practices": 96
                            },
                            "benchmark_index": 1790
                        }
                    ]
                },
                "crawlability": {
                    "status": "ok",
                    "duration_ms": 116,
                    "robots_txt": {
                        "present": true,
                        "blocks_all": false,
                        "sitemap_declared": true
                    },
                    "sitemap": {
                        "present": true,
                        "url_count": 7
                    }
                }
            },
            "credits_cost": 1,
            "error": null,
            "completed_at": "2026-07-24T10:19:28Z"
        }
    ],
    "error": null,
    "monitor": null,
    "project": "prj_public",
    "metadata": {
        "source": "public_report"
    },
    "created_at": "2026-07-24T10:18:28Z",
    "completed_at": "2026-07-24T10:19:28Z",
    "permalink": "https://lightscore.dev/report/blog.nickesselman.nl/aud_woKRKTYYaxaWGB8LgKN8",
    "json_url": "https://lightscore.dev/report/blog.nickesselman.nl/aud_woKRKTYYaxaWGB8LgKN8.json",
    "status_url": "https://lightscore.dev/report/blog.nickesselman.nl/aud_woKRKTYYaxaWGB8LgKN8/status"
}