{
  "seo": {
    "h1": [
      "NYT Sudoku"
    ],
    "lang": "en",
    "links": {
      "total": 93,
      "external": 74,
      "internal": 19
    },
    "title": "NYT Sudoku - Free Online Daily and Unlimited Sudoku",
    "issues": [],
    "h2Count": 15,
    "sitemap": {
      "ok": true,
      "sample": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n<url>\n<loc>https://nyt-sudoku.net/</loc>\n<lastmod>2026-07-12T03:31:18.719Z</lastmod>\n<changefreq>weekly</changefreq>\n<priority>1</priority>\n</url>\n<url>\n<loc>https://nyt-sudoku.net/daily/</loc>\n<lastmod>2026-07-12T03:31:18.719Z</lastmod>\n<changefreq>daily</changefreq>\n<priority>0.95</priority>\n</url>\n<url>\n<loc>https://nyt-sudoku.net/blog/</loc>\n<lastmod>2026-07-12T03:31:18.719Z</lastmod>\n<changef",
      "status": 200
    },
    "twitter": {
      "card": "summary_large_image",
      "image": "https://nyt-sudoku.net/og/nyt-sudoku-og.png",
      "title": "NYT Sudoku - Free Online Daily and Unlimited Sudoku"
    },
    "hreflang": [
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"x-default\" href=\"https://nyt-sudoku.net/\"/>",
        "href": "https://nyt-sudoku.net/",
        "hreflang": "x-default"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"en\" href=\"https://nyt-sudoku.net/\"/>",
        "href": "https://nyt-sudoku.net/",
        "hreflang": "en"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"zh\" href=\"https://nyt-sudoku.net/zh/\"/>",
        "href": "https://nyt-sudoku.net/zh/",
        "hreflang": "zh"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"zh-TW\" href=\"https://nyt-sudoku.net/zh-TW/\"/>",
        "href": "https://nyt-sudoku.net/zh-TW/",
        "hreflang": "zh-TW"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"ja\" href=\"https://nyt-sudoku.net/ja/\"/>",
        "href": "https://nyt-sudoku.net/ja/",
        "hreflang": "ja"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"ko\" href=\"https://nyt-sudoku.net/ko/\"/>",
        "href": "https://nyt-sudoku.net/ko/",
        "hreflang": "ko"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"fr\" href=\"https://nyt-sudoku.net/fr/\"/>",
        "href": "https://nyt-sudoku.net/fr/",
        "hreflang": "fr"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"de\" href=\"https://nyt-sudoku.net/de/\"/>",
        "href": "https://nyt-sudoku.net/de/",
        "hreflang": "de"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"es\" href=\"https://nyt-sudoku.net/es/\"/>",
        "href": "https://nyt-sudoku.net/es/",
        "hreflang": "es"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"it\" href=\"https://nyt-sudoku.net/it/\"/>",
        "href": "https://nyt-sudoku.net/it/",
        "hreflang": "it"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"pt\" href=\"https://nyt-sudoku.net/pt/\"/>",
        "href": "https://nyt-sudoku.net/pt/",
        "hreflang": "pt"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"ru\" href=\"https://nyt-sudoku.net/ru/\"/>",
        "href": "https://nyt-sudoku.net/ru/",
        "hreflang": "ru"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"tr\" href=\"https://nyt-sudoku.net/tr/\"/>",
        "href": "https://nyt-sudoku.net/tr/",
        "hreflang": "tr"
      },
      {
        "rel": "alternate",
        "tag": "<link rel=\"alternate\" hrefLang=\"hi\" href=\"https://nyt-sudoku.net/hi/\"/>",
        "href": "https://nyt-sudoku.net/hi/",
        "hreflang": "hi"
      }
    ],
    "canonical": "https://nyt-sudoku.net/",
    "openGraph": {
      "url": "https://nyt-sudoku.net/",
      "image": "https://nyt-sudoku.net/og/nyt-sudoku-og.png",
      "title": "NYT Sudoku - Free Online Daily and Unlimited Sudoku",
      "description": "Play daily Easy, Medium, and Hard Sudoku plus unlimited generated practice on a fast browser Sudoku board."
    },
    "robotsTxt": {
      "ok": true,
      "sample": "User-Agent: *\nAllow: /\nDisallow: /api/\nDisallow: /admin/\nDisallow: /auth/\nDisallow: /account/\nDisallow: /progress/\nDisallow: /battle/\nDisallow: /*/battle/\nDisallow: /?mode=unlimited&seed=\nDisallow: /*?seed=\n\nSitemap: https://nyt-sudoku.net/sitemap.xml\n",
      "status": 200
    },
    "robotsMeta": "index, follow",
    "description": "Play daily Easy, Medium, and Hard Sudoku plus unlimited generated practice on a fast browser Sudoku board.",
    "structuredData": [
      {
        "raw": "{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"NYT Sudoku\",\"alternateName\":[\"nytsudoku\",\"NYT Sudoku online\",\"free online Sudoku\"],\"url\":\"https://nyt-sudoku.net\",\"inLanguage\":\"en\",\"description\":\"Play daily Easy, Medium, and Hard Sudoku plus unlimited generated practice on a fast browser Sudoku board.\"}",
        "type": "WebSite",
        "valid": true
      },
      {
        "raw": "{\"@context\":\"https://schema.org\",\"@type\":[\"Game\",\"WebApplication\"],\"name\":\"NYT Sudoku\",\"alternateName\":[\"nytsudoku\",\"NYT Sudoku online\",\"free online Sudoku\"],\"url\":\"https://nyt-sudoku.net\",\"inLanguage\":\"en\",\"applicationCategory\":\"GameApplication\",\"operatingSystem\":\"Web\",\"gameItem\":\"9x9 Sudoku puzzles\",\"numberOfPlayers\":\"1\",\"isAccessibleForFree\":true,\"description\":\"Play daily Easy, Medium, and Hard Sudoku plus unlimited generated practice on a fast browser Sudoku board.\",\"offers\":{\"@type\":\"Offer\"",
        "type": [
          "Game",
          "WebApplication"
        ],
        "valid": true
      },
      {
        "raw": "{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Is NYT Sudoku official?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. NYT Sudoku on nyt-sudoku.net is an unofficial Sudoku game site.\"}},{\"@type\":\"Question\",\"name\":\"Is this site affiliated with The New York Times?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. It is not affiliated with, endorsed by, or sponsored by The New York Times Company. NYT and New York Times are trademarks of The New York Times",
        "type": "FAQPage",
        "valid": true
      }
    ]
  },
  "score": {
    "total": 86,
    "dimensions": {
      "seo": 20,
      "security": 1,
      "performance": 20,
      "techClarity": 15,
      "accessibility": 20,
      "maintainability": 10
    }
  },
  "audits": {
    "lighthouse": {
      "used": false,
      "reason": "Set ENABLE_LIGHTHOUSE=1 to enable Lighthouse CLI audits.",
      "enabled": false,
      "skipped": true
    }
  },
  "issues": [
    {
      "fix": "Add Strict-Transport-Security after confirming the full site works over HTTPS.",
      "area": "Security",
      "code": "security.missing_hsts_header",
      "title": "Missing HSTS header",
      "detail": "HSTS was not found in the response headers.",
      "fixUrl": "/fix/missing-hsts-header/",
      "severity": "high"
    },
    {
      "fix": "Add a CSP header at the CDN or server layer and test third-party scripts.",
      "area": "Security",
      "code": "security.missing_csp_header",
      "title": "Missing Content-Security-Policy header",
      "detail": "Content-Security-Policy was not found in the response headers.",
      "fixUrl": "/fix/missing-csp-header/",
      "severity": "high"
    },
    {
      "fix": "Add X-Frame-Options: SAMEORIGIN or use frame-ancestors in CSP.",
      "area": "Security",
      "code": "security.missing_x_frame_options_header",
      "title": "Missing X-Frame-Options header",
      "detail": "X-Frame-Options was not found in the response headers.",
      "fixUrl": "/fix/missing-x-frame-options/",
      "severity": "medium"
    },
    {
      "fix": "Add X-Content-Type-Options: nosniff.",
      "area": "Security",
      "code": "security.missing_x_content_type_options_header",
      "title": "Missing X-Content-Type-Options header",
      "detail": "X-Content-Type-Options was not found in the response headers.",
      "fixUrl": "",
      "severity": "medium"
    },
    {
      "fix": "Add Referrer-Policy: strict-origin-when-cross-origin.",
      "area": "Security",
      "code": "security.missing_referrer_policy_header",
      "title": "Missing Referrer-Policy header",
      "detail": "Referrer-Policy was not found in the response headers.",
      "fixUrl": "/fix/missing-referrer-policy/",
      "severity": "low"
    },
    {
      "fix": "Restrict browser features that the site does not use.",
      "area": "Security",
      "code": "security.missing_permissions_policy_header",
      "title": "Missing Permissions-Policy header",
      "detail": "Permissions-Policy was not found in the response headers.",
      "fixUrl": "",
      "severity": "low"
    }
  ],
  "origin": "https://nyt-sudoku.net",
  "status": 200,
  "summary": {
    "seoIssues": 0,
    "totalIssues": 6,
    "techDetected": 5,
    "securityIssues": 6,
    "detectionChannels": 8,
    "performanceIssues": 0,
    "accessibilityIssues": 0
  },
  "finalUrl": "https://nyt-sudoku.net/",
  "hostname": "nyt-sudoku.net",
  "inputUrl": "https://nyt-sudoku.net/",
  "security": {
    "tls": {
      "sans": [
        "nyt-sudoku.net"
      ],
      "issuer": "CN=WE1, O=Google Trust Services",
      "subject": "CN=nyt-sudoku.net",
      "validTo": "Aug 18 14:47:22 2026 GMT",
      "protocol": "TLSv1.3",
      "validFrom": "May 20 13:47:24 2026 GMT",
      "daysToExpiry": 37
    },
    "issues": [
      {
        "fix": "Add Strict-Transport-Security after confirming the full site works over HTTPS.",
        "area": "Security",
        "code": "security.missing_hsts_header",
        "title": "Missing HSTS header",
        "detail": "HSTS was not found in the response headers.",
        "fixUrl": "/fix/missing-hsts-header/",
        "severity": "high"
      },
      {
        "fix": "Add a CSP header at the CDN or server layer and test third-party scripts.",
        "area": "Security",
        "code": "security.missing_csp_header",
        "title": "Missing Content-Security-Policy header",
        "detail": "Content-Security-Policy was not found in the response headers.",
        "fixUrl": "/fix/missing-csp-header/",
        "severity": "high"
      },
      {
        "fix": "Add X-Frame-Options: SAMEORIGIN or use frame-ancestors in CSP.",
        "area": "Security",
        "code": "security.missing_x_frame_options_header",
        "title": "Missing X-Frame-Options header",
        "detail": "X-Frame-Options was not found in the response headers.",
        "fixUrl": "/fix/missing-x-frame-options/",
        "severity": "medium"
      },
      {
        "fix": "Add X-Content-Type-Options: nosniff.",
        "area": "Security",
        "code": "security.missing_x_content_type_options_header",
        "title": "Missing X-Content-Type-Options header",
        "detail": "X-Content-Type-Options was not found in the response headers.",
        "fixUrl": "",
        "severity": "medium"
      },
      {
        "fix": "Add Referrer-Policy: strict-origin-when-cross-origin.",
        "area": "Security",
        "code": "security.missing_referrer_policy_header",
        "title": "Missing Referrer-Policy header",
        "detail": "Referrer-Policy was not found in the response headers.",
        "fixUrl": "/fix/missing-referrer-policy/",
        "severity": "low"
      },
      {
        "fix": "Restrict browser features that the site does not use.",
        "area": "Security",
        "code": "security.missing_permissions_policy_header",
        "title": "Missing Permissions-Policy header",
        "detail": "Permissions-Policy was not found in the response headers.",
        "fixUrl": "",
        "severity": "low"
      }
    ],
    "cookies": {
      "total": 0,
      "issues": []
    },
    "headers": [
      {
        "fix": "Add Strict-Transport-Security after confirming the full site works over HTTPS.",
        "key": "strict-transport-security",
        "label": "HSTS",
        "value": "",
        "present": false,
        "severity": "high"
      },
      {
        "fix": "Add a CSP header at the CDN or server layer and test third-party scripts.",
        "key": "content-security-policy",
        "label": "Content-Security-Policy",
        "value": "",
        "present": false,
        "severity": "high"
      },
      {
        "fix": "Add X-Frame-Options: SAMEORIGIN or use frame-ancestors in CSP.",
        "key": "x-frame-options",
        "label": "X-Frame-Options",
        "value": "",
        "present": false,
        "severity": "medium"
      },
      {
        "fix": "Add X-Content-Type-Options: nosniff.",
        "key": "x-content-type-options",
        "label": "X-Content-Type-Options",
        "value": "",
        "present": false,
        "severity": "medium"
      },
      {
        "fix": "Add Referrer-Policy: strict-origin-when-cross-origin.",
        "key": "referrer-policy",
        "label": "Referrer-Policy",
        "value": "",
        "present": false,
        "severity": "low"
      },
      {
        "fix": "Restrict browser features that the site does not use.",
        "key": "permissions-policy",
        "label": "Permissions-Policy",
        "value": "",
        "present": false,
        "severity": "low"
      }
    ]
  },
  "topFixes": [
    {
      "fix": "Add Strict-Transport-Security after confirming the full site works over HTTPS.",
      "area": "Security",
      "code": "security.missing_hsts_header",
      "title": "Missing HSTS header",
      "detail": "HSTS was not found in the response headers.",
      "fixUrl": "/fix/missing-hsts-header/",
      "priority": "P1",
      "severity": "high"
    },
    {
      "fix": "Add a CSP header at the CDN or server layer and test third-party scripts.",
      "area": "Security",
      "code": "security.missing_csp_header",
      "title": "Missing Content-Security-Policy header",
      "detail": "Content-Security-Policy was not found in the response headers.",
      "fixUrl": "/fix/missing-csp-header/",
      "priority": "P1",
      "severity": "high"
    },
    {
      "fix": "Add X-Frame-Options: SAMEORIGIN or use frame-ancestors in CSP.",
      "area": "Security",
      "code": "security.missing_x_frame_options_header",
      "title": "Missing X-Frame-Options header",
      "detail": "X-Frame-Options was not found in the response headers.",
      "fixUrl": "/fix/missing-x-frame-options/",
      "priority": "P1",
      "severity": "medium"
    },
    {
      "fix": "Add X-Content-Type-Options: nosniff.",
      "area": "Security",
      "code": "security.missing_x_content_type_options_header",
      "title": "Missing X-Content-Type-Options header",
      "detail": "X-Content-Type-Options was not found in the response headers.",
      "fixUrl": "",
      "priority": "P2",
      "severity": "medium"
    },
    {
      "fix": "Add Referrer-Policy: strict-origin-when-cross-origin.",
      "area": "Security",
      "code": "security.missing_referrer_policy_header",
      "title": "Missing Referrer-Policy header",
      "detail": "Referrer-Policy was not found in the response headers.",
      "fixUrl": "/fix/missing-referrer-policy/",
      "priority": "P2",
      "severity": "low"
    },
    {
      "fix": "Restrict browser features that the site does not use.",
      "area": "Security",
      "code": "security.missing_permissions_policy_header",
      "title": "Missing Permissions-Policy header",
      "detail": "Permissions-Policy was not found in the response headers.",
      "fixUrl": "",
      "priority": "P2",
      "severity": "low"
    }
  ],
  "redirects": [],
  "rendering": {
    "axe": {
      "used": false,
      "enabled": false
    },
    "dom": {},
    "used": false,
    "title": "",
    "failed": false,
    "reason": "Set ENABLE_PLAYWRIGHT=1 to enable rendered DOM scanning.",
    "source": "",
    "status": 0,
    "enabled": false,
    "globals": {},
    "finalUrl": "",
    "available": true,
    "classHints": {},
    "durationMs": 0,
    "textSample": "",
    "requestCount": 0,
    "requestLimit": 0,
    "abortedByLimit": false,
    "failedRequestCount": 0
  },
  "scannedAt": "2026-07-12T03:31:19.316Z",
  "wordpress": {
    "notes": "WordPress signals are detected from public HTML, resource URLs, and metadata. Plugin/theme names are best-effort and may be incomplete when assets are bundled or hidden.",
    "theme": "",
    "themes": [],
    "plugins": [],
    "restApi": false,
    "detected": true,
    "generator": "",
    "themeDetails": null,
    "versionHints": [],
    "legacySignals": [],
    "pluginDetails": []
  },
  "performance": {
    "note": "This MVP uses fast static performance signals. Enable Lighthouse CLI to add lab performance, SEO, accessibility, and best-practices scores.",
    "issues": [],
    "htmlBytes": 177371,
    "resources": {
      "total": 125,
      "images": 39,
      "preload": 1,
      "scripts": 14,
      "lazyImages": 72,
      "stylesheets": 3
    },
    "durationMs": 834,
    "lighthouse": {
      "used": false,
      "reason": "Set ENABLE_LIGHTHOUSE=1 to enable Lighthouse CLI audits.",
      "enabled": false,
      "skipped": true
    }
  },
  "technologies": [
    {
      "id": "1d18453c00",
      "code": "bc42338b4653",
      "name": "Google Analytics 4",
      "risk": "",
      "version": "",
      "category": "Analytics",
      "evidence": [
        {
          "value": "g-white",
          "source": "html"
        }
      ],
      "confidence": "high",
      "confidenceScore": 82,
      "evidenceSources": [
        "html"
      ],
      "versionEvidence": null
    },
    {
      "id": "1107bfa3fa",
      "code": "9916234349b1",
      "name": "WordPress",
      "risk": "Theme, plugin, or version hints may expose maintenance and attack-surface details.",
      "version": "",
      "category": "CMS",
      "evidence": [
        {
          "value": "wp-content",
          "source": "html"
        },
        {
          "value": "/wp-content/",
          "source": "resources"
        }
      ],
      "confidence": "high",
      "confidenceScore": 91,
      "evidenceSources": [
        "html",
        "resources"
      ],
      "versionEvidence": null
    },
    {
      "id": "c09f221393",
      "code": "d0491df3c527",
      "name": "Tailwind CSS",
      "risk": "",
      "version": "",
      "category": "CSS / UI",
      "evidence": [
        {
          "value": "class=\"fixed inset-x-3 bottom-3 z-[80] mx-auto max-w-3xl rounded-[8px] border border-[#c9c1b0] bg-[#fffdf7] p-4 text-[#171717] shadow-",
          "source": "html"
        }
      ],
      "confidence": "low",
      "confidenceScore": 40,
      "evidenceSources": [
        "html"
      ],
      "versionEvidence": null
    },
    {
      "id": "18080496ca",
      "code": "8f55b22d0494",
      "name": "Next.js",
      "risk": "",
      "version": "",
      "category": "Frontend Framework",
      "evidence": [
        {
          "value": "/_next/static",
          "source": "html"
        },
        {
          "value": "/_next/static",
          "source": "resources"
        },
        {
          "value": "next-router",
          "source": "headers"
        }
      ],
      "confidence": "high",
      "confidenceScore": 99,
      "evidenceSources": [
        "html",
        "resources",
        "headers"
      ],
      "versionEvidence": null
    },
    {
      "id": "d9eb22af03",
      "code": "8c3c6c8c2657",
      "name": "Cloudflare",
      "risk": "",
      "version": "",
      "category": "Hosting / CDN",
      "evidence": [
        {
          "value": "cf-cache-status",
          "source": "headers"
        },
        {
          "value": "cloudflareinsights.com",
          "source": "resources"
        }
      ],
      "confidence": "high",
      "confidenceScore": 91,
      "evidenceSources": [
        "headers",
        "resources"
      ],
      "versionEvidence": null
    }
  ],
  "accessibility": {
    "axe": {
      "used": false,
      "reason": "",
      "enabled": false,
      "violations": [],
      "violationCount": 0,
      "incompleteCount": 0
    },
    "note": "This is a fast static accessibility scan. Enable Playwright + axe-core for automated rendered-page audits.",
    "forms": {
      "inputs": 0,
      "labels": 0
    },
    "images": {
      "total": 73,
      "missingAlt": 0
    },
    "issues": [],
    "buttons": {
      "empty": 0,
      "total": 110
    },
    "headings": [
      {
        "text": "NYT Sudoku",
        "level": 1
      },
      {
        "text": "Play NYT Sudoku",
        "level": 2
      },
      {
        "text": "Choose play",
        "level": 2
      },
      {
        "text": "Play NYT Sudoku online with standard rules",
        "level": 2
      },
      {
        "text": "Complete every row from 1 to 9",
        "level": 3
      },
      {
        "text": "Check the vertical conflicts",
        "level": 3
      },
      {
        "text": "Finish each 3x3 square",
        "level": 3
      },
      {
        "text": "A fast online Sudoku board for daily practice",
        "level": 2
      },
      {
        "text": "Choose levels, daily puzzles, or unlimited Sudoku practice",
        "level": 2
      },
      {
        "text": "A 200-puzzle path",
        "level": 3
      },
      {
        "text": "Easy, Medium, and Hard each day",
        "level": 3
      },
      {
        "text": "Generated practice on demand",
        "level": 3
      },
      {
        "text": "Daily is a habit, Unlimited is a practice loop",
        "level": 3
      },
      {
        "text": "A focused Sudoku board with useful player tools",
        "level": 2
      },
      {
        "text": "Resume without signing in",
        "level": 3
      },
      {
        "text": "Notes, undo, hint, and stats",
        "level": 3
      },
      {
        "text": "Easy, Medium, and Hard",
        "level": 3
      },
      {
        "text": "The whole puzzle is solved by elimination",
        "level": 2
      },
      {
        "text": "Readable Sudoku layout for rules, notes, and daily play",
        "level": 2
      },
      {
        "text": "Notes should reduce uncertainty, not add clutter",
        "level": 3
      },
      {
        "text": "Keep the puzzle readable before adding more copy",
        "level": 3
      },
      {
        "text": "Show why each difficulty exists",
        "level": 3
      },
      {
        "text": "A practical no-guessing workflow",
        "level": 2
      },
      {
        "text": "Scan for singles",
        "level": 3
      },
      {
        "text": "Write fewer notes",
        "level": 3
      },
      {
        "text": "Compare boxes and lines",
        "level": 3
      },
      {
        "text": "Use hints as checks",
        "level": 3
      },
      {
        "text": "Reset safely",
        "level": 3
      },
      {
        "text": "Choose the right difficulty",
        "level": 3
      },
      {
        "text": "Easy, Medium, and Hard Sudoku serve different search intents",
        "level": 2
      },
      {
        "text": "Best for warmups and new players",
        "level": 3
      },
      {
        "text": "Best for regular practice",
        "level": 3
      },
      {
        "text": "Best for focused solving",
        "level": 3
      },
      {
        "text": "Pick the board that matches the session",
        "level": 3
      },
      {
        "text": "Built for the way people actually play free online Sudoku",
        "level": 2
      },
      {
        "text": "A practical alternative for quick newspaper-style Sudoku sessions",
        "level": 2
      },
      {
        "text": "Start from the board, not a signup wall",
        "level": 3
      },
      {
        "text": "Designed for scanning and repeated sessions",
        "level": 3
      },
      {
        "text": "Fresh boards with a consistent rule set",
        "level": 3
      },
      {
        "text": "Beginner-friendly enough to start, structured enough to keep improving",
        "level": 2
      },
      {
        "text": "Sudoku guides for rules, strategy, and difficulty",
        "level": 2
      },
      {
        "text": "How to Play NYT Sudoku Online for Free",
        "level": 3
      },
      {
        "text": "Sudoku Strategy: Notes and Singles",
        "level": 3
      },
      {
        "text": "Easy, Medium, Hard Sudoku",
        "level": 3
      },
      {
        "text": "NYT Sudoku FAQ",
        "level": 2
      },
      {
        "text": "Is NYT Sudoku official?",
        "level": 3
      },
      {
        "text": "Are these official NYT Sudoku puzzles?",
        "level": 3
      },
      {
        "text": "Is this Sudoku free to play?",
        "level": 3
      },
      {
        "text": "Can I play without signing in?",
        "level": 3
      },
      {
        "text": "What is the difference between Levels, Daily, and Unlimited?",
        "level": 3
      },
      {
        "text": "Which difficulty should I choose first?",
        "level": 3
      },
      {
        "text": "How do hints work?",
        "level": 3
      },
      {
        "text": "Can I use notes?",
        "level": 3
      },
      {
        "text": "Does the timer affect the puzzle?",
        "level": 3
      },
      {
        "text": "Does Sudoku require guessing?",
        "level": 3
      },
      {
        "text": "Can I play on mobile?",
        "level": 3
      },
      {
        "text": "What happens if I reset a puzzle?",
        "level": 3
      },
      {
        "text": "Why does the page mention New York Times?",
        "level": 3
      },
      {
        "text": "What should I do if I make a mistake?",
        "level": 3
      },
      {
        "text": "How can I solve faster?",
        "level": 3
      },
      {
        "text": "When should I start using notes?",
        "level": 3
      },
      {
        "text": "Why do some puzzles start quickly and then stall?",
        "level": 3
      },
      {
        "text": "Is guessing ever a good idea?",
        "level": 3
      },
      {
        "text": "How should I use the daily puzzles?",
        "level": 3
      },
      {
        "text": "Which mode is best for beginners?",
        "level": 3
      },
      {
        "text": "What does local save mean?",
        "level": 3
      },
      {
        "text": "Can children or first-time players use this page?",
        "level": 3
      },
      {
        "text": "Why does the homepage include so much explanation?",
        "level": 3
      }
    ],
    "viewport": true
  },
  "responseHeaders": {
    "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}",
    "date": "Sun, 12 Jul 2026 03:31:18 GMT",
    "link": "</_next/static/media/36966cca54120369-s.p.woff2>; rel=preload; as=\"font\"; crossorigin=\"\"; type=\"font/woff2\", </_next/static/media/9a4ee768fed045da-s.p.woff2>; rel=preload; as=\"font\"; crossorigin=\"\"; type=\"font/woff2\", </images/hero/nytsudoku-hero-v2.webp>; rel=preload; as=\"image\"",
    "vary": "rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, accept-encoding",
    "cf-ray": "a19cf964e949f7e3-LAX",
    "server": "cloudflare",
    "alt-svc": "h3=\":443\"; ma=86400",
    "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=ku%2F3%2BhF3VlYNo9ING%2B%2FKoFJgkpJGlHLWRPRPAL1r13S0fevGGLQk0kyDCywFHkAswctnQbtTvS1udXLKTnnKhmLQbyogi7B9k5iCMejUzGVrZ3VAAkfKpaKRUlbfIoH%2Bfw%3D%3D\"}]}",
    "connection": "keep-alive",
    "content-type": "text/html; charset=utf-8",
    "server-timing": "cfCacheStatus;desc=\"DYNAMIC\", cfEdge;dur=17,cfOrigin;dur=758",
    "x-edge-runtime": "1",
    "x-matched-path": "/[locale]",
    "cf-cache-status": "DYNAMIC",
    "content-encoding": "br",
    "transfer-encoding": "chunked"
  },
  "detectionSignals": {
    "html": {
      "bytes": 177371,
      "comments": 6,
      "cssVariables": 0,
      "jsonLdBlocks": 3,
      "stylesInline": 0,
      "scriptsInline": 24,
      "scriptsExternal": 15
    },
    "meta": {
      "total": 22,
      "generator": "",
      "frameworkHints": [
        {
          "name": "next-size-adjust",
          "content": ""
        }
      ]
    },
    "audits": {
      "lighthouse": {
        "used": false,
        "reason": "Set ENABLE_LIGHTHOUSE=1 to enable Lighthouse CLI audits.",
        "enabled": false,
        "skipped": true
      }
    },
    "render": {
      "axe": {
        "used": false,
        "enabled": false
      },
      "dom": {},
      "used": false,
      "source": "",
      "enabled": false,
      "globals": {},
      "classHints": {},
      "durationMs": 0,
      "requestCount": 0,
      "failedRequestCount": 0
    },
    "classes": {
      "bootstrap": 8,
      "elementor": 0,
      "vueScoped": 0,
      "attributes": 398,
      "tailwindLike": 205,
      "wordpressBlocks": 0
    },
    "headers": {
      "total": 16,
      "identity": [
        {
          "key": "server",
          "value": "cloudflare"
        },
        {
          "key": "cf-ray",
          "value": "a19cf964e949f7e3-LAX"
        }
      ],
      "cacheHeaderCount": 1,
      "securityHeaderCount": 0
    },
    "channels": [
      {
        "key": "static-html",
        "label": "Static HTML",
        "signals": 1,
        "description": "Server-returned HTML, metadata, inline scripts, comments, and visible markup."
      },
      {
        "key": "resource-urls",
        "label": "Resource URLs",
        "signals": 125,
        "description": "Script, CSS, image, font, iframe, and asset paths extracted from public markup."
      },
      {
        "key": "response-headers",
        "label": "Response headers",
        "signals": 3,
        "description": "Main-document headers such as Server, CDN, cache, security, and framework hints."
      },
      {
        "key": "meta-tags",
        "label": "Meta tags",
        "signals": 22,
        "description": "Generator, Open Graph, Twitter Card, viewport, robots, and framework metadata."
      },
      {
        "key": "css-classes",
        "label": "CSS classes",
        "signals": 398,
        "description": "Utility classes, page-builder classes, scoped framework attributes, and block editor classes."
      },
      {
        "key": "auxiliary-files",
        "label": "Auxiliary files",
        "signals": 2,
        "description": "robots.txt and sitemap.xml checks collected by the scanner fetch layer."
      },
      {
        "key": "rendered-dom",
        "label": "Rendered DOM",
        "signals": 0,
        "description": "Playwright-rendered DOM, runtime globals, class hints, and post-load network responses when enabled."
      },
      {
        "key": "automated-audits",
        "label": "Automated audits",
        "signals": 0,
        "description": "Optional axe-core and Lighthouse checks when enabled on the runtime."
      }
    ],
    "warnings": [
      "Many external resource hosts were detected. Third-party detections may reflect embedded widgets rather than owned platform choices."
    ],
    "resources": {
      "total": 125,
      "byType": {
        "feeds": 0,
        "fonts": 0,
        "other": 69,
        "images": 39,
        "iframes": 0,
        "scripts": 14,
        "stylesheets": 3
      },
      "topHosts": [
        {
          "name": "nyt-sudoku.net",
          "count": 53
        },
        {
          "name": "acidtools.com",
          "count": 2
        },
        {
          "name": "aiblog.tools",
          "count": 2
        },
        {
          "name": "aidirs.best",
          "count": 2
        },
        {
          "name": "airanking.ai",
          "count": 2
        },
        {
          "name": "deeplaunch.io",
          "count": 2
        },
        {
          "name": "dironix.com",
          "count": 2
        },
        {
          "name": "domainrank.app",
          "count": 2
        },
        {
          "name": "fazier.com",
          "count": 2
        },
        {
          "name": "findly.tools",
          "count": 2
        },
        {
          "name": "firstlook.tools",
          "count": 2
        },
        {
          "name": "goodaitools.com",
          "count": 2
        }
      ],
      "externalHosts": [
        "analytics.ahrefs.com",
        "playqueensgame.org",
        "starbattle.online",
        "kakuro-puzzle.online",
        "hashipuzzle.org",
        "submitaitools.org",
        "twelve.tools",
        "showmebest.ai",
        "navs.site",
        "www.showmysites.com",
        "aidirs.best",
        "www.toolpilot.ai",
        "mossai.org",
        "startupfa.st",
        "wired.business",
        "uno.directory",
        "firstlook.tools",
        "navfolders.com",
        "dang.ai",
        "cdn.prod.website-files.com",
        "domainrank.app",
        "unitelist.com",
        "goodaitools.com",
        "acidtools.com"
      ],
      "firstPartyHost": "nyt-sudoku.net"
    },
    "methodology": "Themerella uses a self-owned static scanner that combines HTML, resources, headers, metadata, CSS-class hints, robots.txt, and sitemap.xml. Enable Playwright to add rendered DOM, runtime globals, dynamic network responses, axe, and Lighthouse."
  }
}