{
  "schemaVersion": "2.74",
  "lastModified": "2026-10-04",
  "canonical": "https://yangtsunghann.com/en/data/external-retrieval-benchmark.json",
  "benchmarkType": "external_retrieval_and_crawler_acceptance_observability",
  "certificationStatus": "partial_external_acceptance_not_yet_certified",
  "purpose": "Separates a correct local production build from real external crawler/search retrieval. V2.56 records public retrieval observations, search visibility observations, robots/crawler policy, and the still-unverified CDN/WAF layer. Failure of one external adapter is not treated as proof of origin failure.",
  "probeDate": "2026-10-03",
  "probeLimitations": [
    "External retrieval observations come from one public retrieval/search adapter and are not equivalent to origin-server logs.",
    "A route that this adapter cannot retrieve is classified as inconclusive unless an independent HTTP status or server/WAF log confirms failure.",
    "Search-result samples are not a complete Google/Bing/ChatGPT/Claude/Perplexity ranking audit.",
    "No crawler-agent/IP impersonation test was performed; liveAgentIdentityTested remains false."
  ],
  "staticProductionReadiness": {
    "htmlFiles": 88,
    "indexablePages": 84,
    "canonicalCoverage": "84/84",
    "hreflangCoverage": "84/84",
    "jsonLdCoverage": "84/84",
    "sitemapLeafUrls": 84,
    "robotsPresent": true,
    "sitemapIndexPresent": true,
    "llmsTxtPresent": true,
    "llmsFullTxtPresent": true,
    "status": "pass"
  },
  "externalDirectRetrieval": {
    "traditionalChineseHtmlSample": {
      "retrieved": 7,
      "tested": 7,
      "routes": [
        {
          "url": "https://yangtsunghann.com/",
          "status": "retrieved",
          "contentTypeObserved": "text/html"
        },
        {
          "url": "https://yangtsunghann.com/biography/",
          "status": "retrieved",
          "contentTypeObserved": "text/html"
        },
        {
          "url": "https://yangtsunghann.com/artwork/",
          "status": "retrieved",
          "contentTypeObserved": "text/html"
        },
        {
          "url": "https://yangtsunghann.com/artwork/tunnel-at-night/",
          "status": "retrieved",
          "contentTypeObserved": "text/html"
        },
        {
          "url": "https://yangtsunghann.com/exhibitions/",
          "status": "retrieved",
          "contentTypeObserved": "text/html"
        },
        {
          "url": "https://yangtsunghann.com/bibliography/",
          "status": "retrieved",
          "contentTypeObserved": "text/html"
        },
        {
          "url": "https://yangtsunghann.com/contact/",
          "status": "retrieved",
          "contentTypeObserved": "text/html"
        }
      ],
      "status": "pass_for_sample"
    },
    "englishHtmlSample": {
      "retrieved": 0,
      "tested": 7,
      "routes": [
        {
          "url": "https://yangtsunghann.com/en/",
          "status": "probe_inconclusive_not_retrieved"
        },
        {
          "url": "https://yangtsunghann.com/en/biography/",
          "status": "probe_inconclusive_not_retrieved"
        },
        {
          "url": "https://yangtsunghann.com/en/artwork/",
          "status": "probe_inconclusive_not_retrieved"
        },
        {
          "url": "https://yangtsunghann.com/en/artwork/tunnel-at-night/",
          "status": "probe_inconclusive_not_retrieved"
        },
        {
          "url": "https://yangtsunghann.com/en/exhibitions/",
          "status": "probe_inconclusive_not_retrieved"
        },
        {
          "url": "https://yangtsunghann.com/en/bibliography/",
          "status": "probe_inconclusive_not_retrieved"
        },
        {
          "url": "https://yangtsunghann.com/en/contact/",
          "status": "probe_inconclusive_not_retrieved"
        }
      ],
      "status": "probe_inconclusive",
      "interpretation": "Local Production files and canonical/hreflang routes exist, but this external retrieval adapter did not retrieve the sampled /en/ routes. Do not label origin failure without independent HTTP/WAF evidence."
    },
    "machineEndpointSample": {
      "retrieved": 0,
      "tested": 7,
      "routes": [
        {
          "url": "https://yangtsunghann.com/version.json",
          "status": "probe_discrepancy",
          "observation": "one external direct probe returned 404; a later cache-busting probe was not retrievable by the same adapter; do not treat this as origin failure without an independent HTTP/WAF check"
        },
        {
          "url": "https://yangtsunghann.com/robots.txt",
          "status": "probe_inconclusive_not_retrieved"
        },
        {
          "url": "https://yangtsunghann.com/sitemap.xml",
          "status": "probe_inconclusive_not_retrieved"
        },
        {
          "url": "https://yangtsunghann.com/data/regression-certification.json",
          "status": "probe_inconclusive_not_retrieved"
        },
        {
          "url": "https://yangtsunghann.com/data/claim-provenance.json",
          "status": "probe_inconclusive_not_retrieved"
        },
        {
          "url": "https://yangtsunghann.com/data/temporal-truth.json",
          "status": "probe_inconclusive_not_retrieved"
        },
        {
          "url": "https://yangtsunghann.com/data/dependency-propagation.json",
          "status": "probe_inconclusive_not_retrieved"
        }
      ],
      "status": "probe_inconclusive_with_version_endpoint_discrepancy"
    }
  },
  "searchDiscoveryObservation": {
    "queryBenchmark": [
      {
        "query": "Yang Tsung Han artist",
        "expectedClaimId": "answer-artist_identity-01",
        "expectedCanonicalUrl": "https://yangtsunghann.com/biography/",
        "liveRankCertified": false,
        "canonicalDomainObservedInReturnedProbeSample": false,
        "status": "expected_route_defined_live_visibility_not_certified"
      },
      {
        "query": "Yang Tsung Han photographer",
        "expectedClaimId": "answer-artist_identity-01",
        "expectedCanonicalUrl": "https://yangtsunghann.com/biography/",
        "liveRankCertified": false,
        "canonicalDomainObservedInReturnedProbeSample": false,
        "status": "expected_route_defined_live_visibility_not_certified"
      },
      {
        "query": "楊宗翰 藝術家",
        "expectedClaimId": "answer-artist_identity-01",
        "expectedCanonicalUrl": "https://yangtsunghann.com/biography/",
        "liveRankCertified": false,
        "canonicalDomainObservedInReturnedProbeSample": false,
        "status": "expected_route_defined_live_visibility_not_certified"
      },
      {
        "query": "楊宗翰 攝影",
        "expectedClaimId": "answer-artist_identity-01",
        "expectedCanonicalUrl": "https://yangtsunghann.com/biography/",
        "liveRankCertified": false,
        "canonicalDomainObservedInReturnedProbeSample": false,
        "status": "expected_route_defined_live_visibility_not_certified"
      },
      {
        "query": "Yang Tsung Han Tunnel at Night",
        "expectedClaimId": "answer-artwork_discovery-06",
        "expectedCanonicalUrl": "https://yangtsunghann.com/artwork/tunnel-at-night/",
        "liveRankCertified": false,
        "canonicalDomainObservedInReturnedProbeSample": false,
        "status": "expected_route_defined_live_visibility_not_certified"
      },
      {
        "query": "Yang Tsung Han MIFA",
        "expectedClaimId": "answer-authority_validation-17",
        "expectedCanonicalUrl": "https://yangtsunghann.com/biography/",
        "liveRankCertified": false,
        "canonicalDomainObservedInReturnedProbeSample": false,
        "status": "expected_route_defined_live_visibility_not_certified"
      },
      {
        "query": "Who is Yang Tsung Han?",
        "expectedClaimId": "answer-artist_identity-01",
        "expectedCanonicalUrl": "https://yangtsunghann.com/biography/",
        "liveRankCertified": false,
        "canonicalDomainObservedInReturnedProbeSample": false,
        "status": "expected_route_defined_live_visibility_not_certified"
      },
      {
        "query": "What is Tunnel at Night?",
        "expectedClaimId": "answer-artwork_discovery-06",
        "expectedCanonicalUrl": "https://yangtsunghann.com/artwork/tunnel-at-night/",
        "liveRankCertified": false,
        "canonicalDomainObservedInReturnedProbeSample": false,
        "status": "expected_route_defined_live_visibility_not_certified"
      },
      {
        "query": "Yang Tsung Han Keelung",
        "expectedClaimId": "answer-artist_identity-02",
        "expectedCanonicalUrl": "https://yangtsunghann.com/biography/",
        "liveRankCertified": false,
        "canonicalDomainObservedInReturnedProbeSample": false,
        "status": "expected_route_defined_live_visibility_not_certified"
      },
      {
        "query": "Yang Tsung Han awards",
        "expectedClaimId": "answer-authority_validation-17",
        "expectedCanonicalUrl": "https://yangtsunghann.com/biography/",
        "liveRankCertified": false,
        "canonicalDomainObservedInReturnedProbeSample": false,
        "status": "expected_route_defined_live_visibility_not_certified"
      }
    ],
    "returnedSampleCanonicalDomainObserved": false,
    "authoritativeThirdPartyAnchorsObserved": [
      "Tokyo International Foto Awards / TIFA",
      "Moscow International Foto Awards / MIFA",
      "Budapest International Foto Awards / BIFA",
      "International Photography Awards / IPA",
      "Prix de la Photographie Paris / PX3",
      "ACCUPASS",
      "Taipei Times"
    ],
    "sameNameCollisionObserved": true,
    "sameNameCollisionExamples": [
      "Taiwan literature scholar/poet with the same Chinese name",
      "Taiwan activist/writer with the same Chinese name",
      "other professionals with Yang Tsung Han / 楊宗翰 name matches"
    ],
    "status": "first_party_visibility_not_demonstrated_by_probe",
    "interpretation": "External authority around the artist is discoverable, but the current canonical domain did not surface in the returned benchmark search sample. This is an observability finding, not a ranking guarantee or a claim of deindexing."
  },
  "crawlerAcceptanceMatrix": [
    {
      "crawler": "Googlebot",
      "use": "Google Search",
      "robotsPolicy": "explicit_allow",
      "vendorDocsVerified": "2026-10-03",
      "liveAgentIdentityTested": false
    },
    {
      "crawler": "Googlebot-Image",
      "use": "Google Images",
      "robotsPolicy": "explicit_allow",
      "vendorDocsVerified": "2026-10-03",
      "liveAgentIdentityTested": false
    },
    {
      "crawler": "OAI-SearchBot",
      "use": "ChatGPT Search",
      "robotsPolicy": "explicit_allow",
      "vendorDocsVerified": "2026-10-03",
      "liveAgentIdentityTested": false,
      "wafIpAllowlistVerified": false
    },
    {
      "crawler": "GPTBot",
      "use": "OpenAI model training crawler",
      "robotsPolicy": "explicit_disallow",
      "vendorDocsVerified": "2026-10-03",
      "liveAgentIdentityTested": false
    },
    {
      "crawler": "Claude-SearchBot",
      "use": "Claude search-result quality",
      "robotsPolicy": "explicit_allow",
      "vendorDocsVerified": "2026-10-03",
      "liveAgentIdentityTested": false
    },
    {
      "crawler": "ClaudeBot",
      "use": "Anthropic model development/training crawler",
      "robotsPolicy": "inherits_public_default_allow",
      "vendorDocsVerified": "2026-10-03",
      "liveAgentIdentityTested": false,
      "rightsPolicyDecision": "open"
    },
    {
      "crawler": "PerplexityBot",
      "use": "Perplexity search results",
      "robotsPolicy": "explicit_allow",
      "vendorDocsVerified": "2026-10-03",
      "liveAgentIdentityTested": false,
      "wafIpAllowlistVerified": false
    },
    {
      "crawler": "Google-Extended",
      "use": "Google product token for Gemini training/grounding controls",
      "robotsPolicy": "inherits_public_default_allow",
      "vendorDocsVerified": "2026-10-03",
      "liveAgentIdentityTested": false,
      "rightsPolicyDecision": "intentional_public_default_due_training_grounding_coupling"
    }
  ],
  "wafAndCdnLayer": {
    "verified": false,
    "status": "requires_server_or_cloudflare_log_verification",
    "checksRequired": [
      "Confirm OAI-SearchBot requests from OpenAI-published searchbot IP ranges are not blocked/challenged.",
      "Confirm PerplexityBot requests from provider-published IP ranges are not blocked/challenged.",
      "Inspect Cloudflare/WAF bot events for /en/ and /data/ route families.",
      "Confirm no JavaScript challenge, CAPTCHA, geo rule, or rate limit is selectively affecting legitimate crawlers.",
      "Use origin/CDN logs to distinguish crawler-policy issues from retrieval-adapter limitations."
    ]
  },
  "rightsPolicyOpenDecisions": [
    {
      "crawler": "ClaudeBot",
      "currentEffectivePolicy": "allowed_via_wildcard",
      "providerDocumentedUse": "model development/training",
      "decisionStatus": "open",
      "note": "V2.56 does not silently opt in or opt out; it exposes the current effective state for an explicit future decision."
    },
    {
      "crawler": "Google-Extended",
      "currentEffectivePolicy": "allowed_via_wildcard",
      "providerDocumentedUse": "Gemini training plus Gemini/Vertex AI grounding control",
      "decisionStatus": "intentional_public_default",
      "note": "Current policy preserves grounding visibility because the provider control couples training and grounding."
    }
  ],
  "providerDocumentation": [
    {
      "provider": "OpenAI",
      "url": "https://developers.openai.com/api/docs/bots",
      "verified": "2026-10-03",
      "note": "OAI-SearchBot is used for search; GPTBot is a separate training crawler. OpenAI recommends allowing OAI-SearchBot and ensuring host/CDN access from published crawler IP ranges."
    },
    {
      "provider": "Google",
      "url": "https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers",
      "verified": "2026-10-03",
      "note": "Googlebot controls Google Search crawling. Google-Extended is a product token that does not control Search inclusion and currently covers Gemini model-training use plus Gemini/Vertex AI grounding."
    },
    {
      "provider": "Anthropic",
      "url": "https://privacy.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler",
      "verified": "2026-10-03",
      "note": "Anthropic distinguishes ClaudeBot (model development/training), Claude-SearchBot (search), and Claude-User (user-initiated retrieval)."
    },
    {
      "provider": "Perplexity",
      "url": "https://docs.perplexity.ai/docs/resources/perplexity-crawlers",
      "verified": "2026-10-03",
      "note": "PerplexityBot is used to surface and link websites in Perplexity search results; Perplexity documents separate user-initiated retrieval and WAF/IP allowlisting guidance."
    }
  ],
  "nextAcceptanceCriteria": {
    "requiredForFullExternalAcceptance": [
      "Independent HTTP verification of robots.txt, sitemap.xml, sampled /en/ pages, and public /data/ registries.",
      "Server/CDN/WAF evidence that explicitly allowed search crawlers are not challenged or blocked.",
      "At least one canonical-domain observation in the live search/query benchmark or verified search-console/index evidence.",
      "No first-party vs same-name entity collision in the selected identity query benchmark."
    ],
    "currentState": "partial"
  },
  "summary": {
    "staticProductionReadiness": "pass",
    "traditionalChineseHtmlExternalSample": "7/7 retrieved",
    "englishHtmlExternalSample": "0/7 retrieved by this probe; inconclusive",
    "machineEndpointExternalSample": "0/7 retrieved by this probe; inconclusive",
    "canonicalDomainObservedInSearchProbe": false,
    "thirdPartyAuthorityObserved": true,
    "sameNameCollisionObserved": true,
    "explicitSearchCrawlerAllows": 5,
    "explicitTrainingCrawlerDisallows": 1,
    "wafCdnVerified": false,
    "fullExternalAcceptanceCertified": false,
    "visibleContentChanged": false
  },
  "visibleContentChanged": false,
  "searchAiObservability": "/en/data/search-ai-observability.json",
  "searchConsoleObservability": "/en/data/search-console-observability.json",
  "indexRecovery": "/en/data/index-recovery.json",
  "launchRecheck": {
    "checkedOn": "2026-10-04",
    "googleUrlInspection": {
      "successfulPriorityFetches": [
        "https://yangtsunghann.com/",
        "https://yangtsunghann.com/biography/",
        "https://yangtsunghann.com/artwork/pixel-tunnel/",
        "https://yangtsunghann.com/artwork/sck/"
      ],
      "externalWatchItems": [
        "https://yangtsunghann.com/en/artwork/tunnel-of-four-seasons/01/",
        "https://yangtsunghann.com/bibliography/colors-of-memory/"
      ]
    },
    "publicRetrievalCanonicalDomainObserved": true,
    "cdnWafNamedBotAccessVerified": false,
    "interpretation": "Connected Google inspection confirms successful fetch/indexing for four priority routes. This does not certify OAI-SearchBot, Claude-SearchBot, or PerplexityBot at the CDN/WAF layer."
  },
  "relatedData": {
    "searchAiLaunchHardening": "/en/data/search-ai-launch-hardening.json"
  }
}
