{
    "id": "aud_By1EsOIj0OkTTCU7UEsL",
    "object": "audit",
    "result_url": "https://lightscore.dev/api/v1/audits/aud_By1EsOIj0OkTTCU7UEsL",
    "status": "completed",
    "url": "https://blog.nickesselman.nl/",
    "device": "mobile",
    "categories": [
        "performance",
        "accessibility",
        "seo",
        "best_practices"
    ],
    "runs": 1,
    "regions": [
        "fra",
        "iad"
    ],
    "lighthouse_version": "12.8.2",
    "credits_cost": 0,
    "results": [
        {
            "region": "fra",
            "status": "failed",
            "scores": null,
            "metrics": null,
            "report": null,
            "checks": {
                "reachability": {
                    "status": "ok",
                    "duration_ms": 136,
                    "http_status": 200,
                    "final_url": "https://blog.nickesselman.nl/",
                    "redirects": 0,
                    "ip": "104.21.27.57",
                    "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": 32
                    },
                    "ttfb_ms": 60,
                    "total_ms": 136,
                    "phases": {
                        "dns_ms": 76,
                        "tcp_ms": 0,
                        "tls_ms": 0,
                        "ttfb_ms": 60,
                        "download_ms": 0
                    }
                },
                "headers": {
                    "status": "ok",
                    "duration_ms": 0,
                    "server": "cloudflare",
                    "content_type": "text/html",
                    "cdn": "cloudflare",
                    "cookies": null,
                    "security": {
                        "hsts": true,
                        "csp": false,
                        "x_frame_options": "DENY",
                        "x_content_type_options": "nosniff",
                        "referrer_policy": "strict-origin-when-cross-origin",
                        "permissions_policy": "camera=(), microphone=(), geolocation=()",
                        "coop": null,
                        "coep": false,
                        "corp": null
                    },
                    "security_grade": {
                        "score": 70,
                        "grade": "C"
                    }
                },
                "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": "Travel Journals &amp; Build Notes | Nick Esselman’s Blog",
                    "title_length": 56,
                    "meta_description": "Read Nick Esselman’s firsthand travel journals and build notes from Hack Club events, creative projects, and adventures around the world.",
                    "meta_description_length": 137,
                    "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": "Travel Journals &amp; Build Notes | Nick Esselman’s Blog",
                        "description": "Read Nick Esselman’s firsthand travel journals and build notes from Hack Club events, creative projects, and adventures around the world.",
                        "image": "https://cdn.nickesselman.nl/blogimages/moonshot/cover.png",
                        "type": "website",
                        "url": "https://blog.nickesselman.nl/"
                    },
                    "twitter_card": {
                        "card": "summary_large_image",
                        "title": "Travel Journals &amp; Build Notes | Nick Esselman’s Blog",
                        "description": "Read Nick Esselman’s firsthand travel journals and build notes from Hack Club events, creative projects, and adventures around the world.",
                        "image": "https://cdn.nickesselman.nl/blogimages/moonshot/cover.png"
                    },
                    "json_ld": {
                        "present": true,
                        "count": 3,
                        "types": [
                            "WebSite",
                            "CollectionPage",
                            "ItemList"
                        ]
                    },
                    "hreflang": [
                        "en",
                        "nl",
                        "x-default"
                    ]
                },
                "archive": {
                    "status": "ok",
                    "duration_ms": 488,
                    "archived": true,
                    "bytes": 22888
                },
                "lighthouse": {
                    "status": "error",
                    "duration_ms": 90040,
                    "error": {
                        "type": "audit_error",
                        "code": "lighthouse_timeout",
                        "message": "lighthouse exceeded 90000ms"
                    }
                },
                "crawlability": {
                    "status": "skipped"
                }
            },
            "credits_cost": 1,
            "error": {
                "type": "audit_error",
                "code": "lighthouse_timeout",
                "message": "lighthouse exceeded 90000ms"
            },
            "completed_at": null
        },
        {
            "region": "iad",
            "status": "completed",
            "scores": {
                "performance": 98,
                "accessibility": 100,
                "seo": 92,
                "best_practices": 96
            },
            "metrics": {
                "lcp_ms": 2317,
                "cls": 0.0003431525661325876,
                "tbt_ms": 26,
                "fcp_ms": 1668,
                "speed_index_ms": 1673,
                "tti_ms": 2317
            },
            "report": {
                "json_url": "https://lightscore-reports.b-cdn.net/aud_By1EsOIj0OkTTCU7UEsL/iad.json?token=HS256-smm2ZslwCR_qku5WrxC1XS2Tz5h9pqqxVM-DzBFj-aA&expires=1785333665",
                "html_url": "https://lightscore-reports.b-cdn.net/aud_By1EsOIj0OkTTCU7UEsL/iad.html?token=HS256-CMB_X8sTTPNaxNTP-DK9GKtdL4pnGnCpXFA0DsKaeXc&expires=1785333665"
            },
            "checks": {
                "reachability": {
                    "status": "ok",
                    "duration_ms": 430,
                    "http_status": 200,
                    "final_url": "https://blog.nickesselman.nl/",
                    "redirects": 0,
                    "ip": "104.21.27.57",
                    "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": 32
                    },
                    "ttfb_ms": 349,
                    "total_ms": 424,
                    "phases": {
                        "dns_ms": 61,
                        "tcp_ms": 2,
                        "tls_ms": 9,
                        "ttfb_ms": 349,
                        "download_ms": 3
                    }
                },
                "headers": {
                    "status": "ok",
                    "duration_ms": 0,
                    "server": "cloudflare",
                    "content_type": "text/html",
                    "cdn": "cloudflare",
                    "cookies": null,
                    "security": {
                        "hsts": true,
                        "csp": false,
                        "x_frame_options": "DENY",
                        "x_content_type_options": "nosniff",
                        "referrer_policy": "strict-origin-when-cross-origin",
                        "permissions_policy": "camera=(), microphone=(), geolocation=()",
                        "coop": null,
                        "coep": false,
                        "corp": null
                    },
                    "security_grade": {
                        "score": 70,
                        "grade": "C"
                    }
                },
                "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": 2,
                    "title": "Travel Journals &amp; Build Notes | Nick Esselman’s Blog",
                    "title_length": 56,
                    "meta_description": "Read Nick Esselman’s firsthand travel journals and build notes from Hack Club events, creative projects, and adventures around the world.",
                    "meta_description_length": 137,
                    "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": "Travel Journals &amp; Build Notes | Nick Esselman’s Blog",
                        "description": "Read Nick Esselman’s firsthand travel journals and build notes from Hack Club events, creative projects, and adventures around the world.",
                        "image": "https://cdn.nickesselman.nl/blogimages/moonshot/cover.png",
                        "type": "website",
                        "url": "https://blog.nickesselman.nl/"
                    },
                    "twitter_card": {
                        "card": "summary_large_image",
                        "title": "Travel Journals &amp; Build Notes | Nick Esselman’s Blog",
                        "description": "Read Nick Esselman’s firsthand travel journals and build notes from Hack Club events, creative projects, and adventures around the world.",
                        "image": "https://cdn.nickesselman.nl/blogimages/moonshot/cover.png"
                    },
                    "json_ld": {
                        "present": true,
                        "count": 3,
                        "types": [
                            "WebSite",
                            "CollectionPage",
                            "ItemList"
                        ]
                    },
                    "hreflang": [
                        "en",
                        "nl",
                        "x-default"
                    ]
                },
                "archive": {
                    "status": "ok",
                    "duration_ms": 133,
                    "archived": true,
                    "bytes": 23247
                },
                "lighthouse": {
                    "status": "ok",
                    "duration_ms": 10781,
                    "scores": {
                        "performance": 98,
                        "accessibility": 100,
                        "seo": 92,
                        "best_practices": 96
                    },
                    "metrics": {
                        "lcp_ms": 2317,
                        "cls": 0.0003431525661325876,
                        "tbt_ms": 26,
                        "fcp_ms": 1668,
                        "speed_index_ms": 1673,
                        "tti_ms": 2317
                    },
                    "network": {
                        "total": 27,
                        "kept": 27,
                        "requests": [
                            {
                                "url": "https://blog.nickesselman.nl/",
                                "type": "Document",
                                "status": 200,
                                "mime": "text/html",
                                "start_ms": 0,
                                "duration_ms": 362,
                                "transfer_size": 7400
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/assets/0.DwP-Uoey.css",
                                "type": "Stylesheet",
                                "status": 200,
                                "mime": "text/css",
                                "start_ms": 376,
                                "duration_ms": 54,
                                "transfer_size": 4918
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/entry/start.IGGym10A.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 382,
                                "duration_ms": 73,
                                "transfer_size": 422
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/hCD5FAOW.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 382,
                                "duration_ms": 80,
                                "transfer_size": 12328
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/D3IvBkcx.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 383,
                                "duration_ms": 75,
                                "transfer_size": 4061
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/entry/app.BuzL-Y1R.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 383,
                                "duration_ms": 66,
                                "transfer_size": 2989
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/IHki7fMi.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 384,
                                "duration_ms": 84,
                                "transfer_size": 524
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/nodes/0.CvQFtcYp.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 384,
                                "duration_ms": 82,
                                "transfer_size": 6851
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/C9SYxZpl.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 405,
                                "duration_ms": 79,
                                "transfer_size": 562
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/DwcjVfHG.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 406,
                                "duration_ms": 68,
                                "transfer_size": 812
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/Bkqkpa1_.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 408,
                                "duration_ms": 64,
                                "transfer_size": 469
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/ChWq6yJE.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 409,
                                "duration_ms": 80,
                                "transfer_size": 2245
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/nodes/2.CK1dfQ4z.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 410,
                                "duration_ms": 76,
                                "transfer_size": 4008
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/mvvQfFEW.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 411,
                                "duration_ms": 79,
                                "transfer_size": 2039
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/chunks/C-4-9hcP.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 412,
                                "duration_ms": 84,
                                "transfer_size": 755
                            },
                            {
                                "url": "https://blog.nickesselman.nl/fonts/space-grotesk-latin.woff2",
                                "type": "Font",
                                "status": 200,
                                "mime": "font/woff2",
                                "start_ms": 412,
                                "duration_ms": 345,
                                "transfer_size": 22713
                            },
                            {
                                "url": "https://cdn.nickesselman.nl/blogimages/moonshot/cover-w480.webp",
                                "type": "Image",
                                "status": 200,
                                "mime": "image/webp",
                                "start_ms": 413,
                                "duration_ms": 456,
                                "transfer_size": 24554
                            },
                            {
                                "url": "https://blog.nickesselman.nl/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "application/javascript",
                                "start_ms": 414,
                                "duration_ms": 51,
                                "transfer_size": 999
                            },
                            {
                                "url": "https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 415,
                                "duration_ms": 101,
                                "transfer_size": 11577
                            },
                            {
                                "url": "https://blog.nickesselman.nl/_app/immutable/nodes/1.DCLZoQUl.js",
                                "type": "Script",
                                "status": 200,
                                "mime": "text/javascript",
                                "start_ms": 521,
                                "duration_ms": 14,
                                "transfer_size": 1418
                            },
                            {
                                "url": "https://cdn.nickesselman.nl/blogimages/shipwrecked/campfiremain-w960.webp",
                                "type": "Image",
                                "status": 200,
                                "mime": "image/webp",
                                "start_ms": 604,
                                "duration_ms": 434,
                                "transfer_size": 16918
                            },
                            {
                                "url": "https://cdn.nickesselman.nl/blogimages/neighborhood/populated-w960.webp",
                                "type": "Image",
                                "status": 200,
                                "mime": "image/webp",
                                "start_ms": 606,
                                "duration_ms": 590,
                                "transfer_size": 80743
                            },
                            {
                                "url": "https://cdn.nickesselman.nl/blogimages/undercity/group-w960.webp",
                                "type": "Image",
                                "status": 200,
                                "mime": "image/webp",
                                "start_ms": 607,
                                "duration_ms": 479,
                                "transfer_size": 74950
                            },
                            {
                                "url": "https://cdn.nickesselman.nl/blogimages/juice/main-w960.webp",
                                "type": "Image",
                                "status": 200,
                                "mime": "image/webp",
                                "start_ms": 608,
                                "duration_ms": 484,
                                "transfer_size": 54246
                            },
                            {
                                "url": "https://blog.nickesselman.nl/api/readers",
                                "type": "Fetch",
                                "status": 200,
                                "mime": "application/json",
                                "start_ms": 609,
                                "duration_ms": 347,
                                "transfer_size": 902
                            },
                            {
                                "url": "https://blog.nickesselman.nl/cdn-cgi/rum",
                                "type": "XHR",
                                "status": 204,
                                "mime": "text/plain",
                                "start_ms": 889,
                                "duration_ms": 12,
                                "transfer_size": 461
                            },
                            {
                                "url": "https://blog.nickesselman.nl/favicon.ico",
                                "type": "Other",
                                "status": 200,
                                "mime": "image/x-icon",
                                "start_ms": 893,
                                "duration_ms": 332,
                                "transfer_size": 2985
                            }
                        ]
                    },
                    "opportunities": [
                        {
                            "id": "uses-responsive-images",
                            "title": "Properly size images",
                            "savings_ms": 0,
                            "savings_bytes": 57958
                        }
                    ],
                    "diagnostics": {
                        "dom_nodes": 82,
                        "main_thread_ms": 1057,
                        "bootup_ms": 335,
                        "total_bytes": 342849,
                        "server_latency_ms": 339
                    },
                    "resource_summary": [
                        {
                            "type": "total",
                            "count": 26,
                            "transfer_bytes": 339864
                        },
                        {
                            "type": "image",
                            "count": 5,
                            "transfer_bytes": 251411
                        },
                        {
                            "type": "script",
                            "count": 16,
                            "transfer_bytes": 52059
                        },
                        {
                            "type": "font",
                            "count": 1,
                            "transfer_bytes": 22713
                        },
                        {
                            "type": "document",
                            "count": 1,
                            "transfer_bytes": 7400
                        },
                        {
                            "type": "stylesheet",
                            "count": 1,
                            "transfer_bytes": 4918
                        },
                        {
                            "type": "other",
                            "count": 2,
                            "transfer_bytes": 1363
                        },
                        {
                            "type": "media",
                            "count": 0,
                            "transfer_bytes": 0
                        },
                        {
                            "type": "third-party",
                            "count": 1,
                            "transfer_bytes": 11577
                        }
                    ],
                    "third_parties": [
                        {
                            "entity": "Cloudflare",
                            "blocking_ms": 0,
                            "transfer_bytes": 11577
                        }
                    ],
                    "audit_details": {
                        "seo": [
                            {
                                "id": "robots-txt",
                                "title": "robots.txt is not valid",
                                "score": 0
                            }
                        ],
                        "best_practices": [
                            {
                                "id": "inspector-issues",
                                "title": "Issues were logged in the `Issues` panel in Chrome Devtools",
                                "score": 0
                            }
                        ]
                    },
                    "lh_version": "12.8.2",
                    "machine_class": "fly-performance-2x",
                    "per_run": [
                        {
                            "scores": {
                                "performance": 98,
                                "accessibility": 100,
                                "seo": 92,
                                "best_practices": 96
                            },
                            "benchmark_index": 1990
                        }
                    ]
                },
                "crawlability": {
                    "status": "ok",
                    "duration_ms": 364,
                    "robots_txt": {
                        "present": true,
                        "blocks_all": false,
                        "sitemap_declared": true
                    },
                    "sitemap": {
                        "present": true,
                        "url_count": 14
                    }
                }
            },
            "credits_cost": 1,
            "error": null,
            "completed_at": "2026-07-25T03:31:45Z"
        }
    ],
    "error": null,
    "monitor": null,
    "project": "prj_public",
    "metadata": {
        "source": "public_report"
    },
    "created_at": "2026-07-25T03:31:27Z",
    "completed_at": "2026-07-25T03:32:56Z",
    "permalink": "https://lightscore.dev/report/blog.nickesselman.nl/aud_By1EsOIj0OkTTCU7UEsL",
    "json_url": "https://lightscore.dev/report/blog.nickesselman.nl/aud_By1EsOIj0OkTTCU7UEsL.json",
    "status_url": "https://lightscore.dev/report/blog.nickesselman.nl/aud_By1EsOIj0OkTTCU7UEsL/status"
}