{
  "generatedAt": "2026-07-07T07:58:59.478Z",
  "project": "LLMs.txt Kit",
  "domain": "llmstxtkit.com",
  "origin": "https://llmstxtkit.com",
  "status": "search_console_learning_sprint_has_clicks",
  "sourceInput": "dist/organic-proof-input.json",
  "summary": {
    "dateRange": "2026-06-23 to 2026-07-05 (GSC UI refreshed on 2026-07-07 HKT; report last updated 3.5 hours before review)",
    "impressions": 375,
    "clicks": 1,
    "ctr": 0.0026666666666666666,
    "averagePosition": 63.7,
    "topQuery": "chatgpt search visibility",
    "topQueryImpressions": 82,
    "topPage": "https://llmstxtkit.com/tools/llms-txt-validator.html",
    "topPageImpressions": 72,
    "priorityActions": 7,
    "activeSignals": 6,
    "searchVisibilityObserved": true,
    "organicProofObserved": true,
    "realDistributionObserved": false
  },
  "currentSearchConsole": {
    "property": "sc-domain:llmstxtkit.com",
    "sitemapUrl": "https://llmstxtkit.com/sitemap.xml",
    "propertyVerified": true,
    "sitemapSubmitted": true,
    "dateRange": "2026-06-23 to 2026-07-05 (GSC UI refreshed on 2026-07-07 HKT; report last updated 3.5 hours before review)",
    "queries": [
      {
        "query": "chatgpt search visibility",
        "impressions": 82,
        "clicks": 0
      },
      {
        "query": "llms.txt validator",
        "impressions": 39,
        "clicks": 1
      },
      {
        "query": "robots txt google generator",
        "impressions": 35,
        "clicks": 0
      },
      {
        "query": "llms validator",
        "impressions": 15,
        "clicks": 0
      },
      {
        "query": "llms.txt checker",
        "impressions": 13,
        "clicks": 0
      },
      {
        "query": "llms txt validator",
        "impressions": 12,
        "clicks": 0
      },
      {
        "query": "llms.txt generator for shopify",
        "impressions": 10,
        "clicks": 0
      },
      {
        "query": "shopify app to generate llms.txt",
        "impressions": 9,
        "clicks": 0
      },
      {
        "query": "chat+gpt+search+visibility",
        "impressions": 8,
        "clicks": 0
      },
      {
        "query": "chatgpt+search+visibility",
        "impressions": 8,
        "clicks": 0
      },
      {
        "query": "llms checker",
        "impressions": 6,
        "clicks": 0
      },
      {
        "query": "log analysis for bot detection",
        "impressions": 6,
        "clicks": 0
      }
    ],
    "pages": [
      {
        "url": "https://llmstxtkit.com/tools/llms-txt-validator.html",
        "impressions": 72,
        "clicks": 1
      },
      {
        "url": "https://llmstxtkit.com/guides/chatgpt-search-visibility.html",
        "impressions": 70,
        "clicks": 0
      },
      {
        "url": "https://llmstxtkit.com/tools/ai-robots-txt-generator.html",
        "impressions": 36,
        "clicks": 0
      },
      {
        "url": "https://llmstxtkit.com/guides/ai-crawler-log-analysis.html",
        "impressions": 24,
        "clicks": 0
      },
      {
        "url": "https://llmstxtkit.com/guides/llms-txt-for-shopify.html",
        "impressions": 23,
        "clicks": 0
      },
      {
        "url": "https://llmstxtkit.com/guides/llms-txt-generator.html",
        "impressions": 15,
        "clicks": 0
      },
      {
        "url": "https://llmstxtkit.com/tools/ai-crawler-log-analyzer.html",
        "impressions": 14,
        "clicks": 0
      },
      {
        "url": "https://llmstxtkit.com/tools/",
        "impressions": 12,
        "clicks": 0
      },
      {
        "url": "https://llmstxtkit.com/data/ai-crawler-policy-benchmark.html",
        "impressions": 6,
        "clicks": 0
      },
      {
        "url": "https://llmstxtkit.com/updates/ai-crawler-policy-changelog.html",
        "impressions": 5,
        "clicks": 0
      }
    ]
  },
  "decisionRules": [
    "Optimize pages that already have impressions before creating more cold pages.",
    "Treat impressions as visibility, not traffic proof.",
    "Treat clicks, qualified referrals, non-test tool events, or conversions as traffic proof.",
    "Prefer direct helpful links over Google search URL tricks.",
    "Do not automate searches, fake clicks, vote manipulation, comments, or forum posts.",
    "If a page has impressions but no clicks, improve title, description, first answer, and matching CTA before broadening the topic."
  ],
  "implementedCopyChanges": [
    {
      "path": "/tools/llms-txt-validator.html",
      "reason": "Highest page impressions and multiple validator/checker query variants.",
      "checks": [
        "title includes validator and checker",
        "meta description starts with free llms.txt validator and checker",
        "fast-answer panel names validator, checker, Shopify, and private-path risk",
        "llms.txt validator publish pack links to data JSON, well-known JSON, live validator API, and answer pack",
        "60-second online validation path makes no-upload/no-account/no-fake-score value visible",
        "validator/checker/generator comparison table routes observed queries to the right next action",
        "sample buttons load clean, Shopify, and risky drafts",
        "private-path checks include Shopify checkout, cart, customer, and discount URLs",
        "query module routes Shopify and generator users"
      ]
    },
    {
      "path": "/data/llms-txt-validator-publish-pack.json",
      "reason": "The validator query is the strongest early click path and needs a compact AI-readable publish-readiness route.",
      "checks": [
        "status is llms_txt_validator_publish_pack_ready",
        "target queries include llms.txt validator variants",
        "publish-readiness checks include live root file, Markdown structure, canonical public URLs, private-path risk, Shopify risk, copy report, post-publish visibility check, and pre-AI answer pack",
        "well-known JSON copy exists",
        "traffic-funnel manifest lists the publish pack"
      ]
    },
    {
      "path": "/tools/llms-txt-checker.html",
      "reason": "llms.txt checker and llms checker have Search Console impressions, but the standalone checker needed live URL utility to match user intent.",
      "checks": [
        "title includes paste draft or check live URL",
        "hero copy names llms.txt checker, llms checker, and check llms.txt file",
        "live /llms.txt URL checker is visible on the checker page",
        "checker uses the existing safe API that fetches only public /llms.txt",
        "live checker report, table, recommendations, and API sample are present",
        "answer DB routes live llms.txt checker queries to the checker answer"
      ]
    },
    {
      "path": "/tools/robots-txt-google-generator.html",
      "reason": "Observed robots txt google generator query.",
      "checks": [
        "title uses Google robots.txt generator wording",
        "meta description starts with free Google robots.txt generator",
        "fast-answer panel warns not to blanket-block Googlebot",
        "Google robots.txt safety pack links to data JSON, well-known JSON, live checker API, and answer pack",
        "copy-ready Google-safe starter snippet is visible",
        "crawler-by-crawler policy preview shows Googlebot, Google-Extended, OAI-SearchBot, GPTBot, Applebot, PerplexityBot, and CCBot outcomes",
        "workflow separates generate, check, publish, and monitor",
        "intro explains Googlebot and Google-Extended separation",
        "Googlebot safe quick preset is visible",
        "strict AI block sample keeps core search open",
        "copy-ready value is visible above the fold",
        "checker CTA routes output to /tools/googlebot-robots-txt-checker.html"
      ]
    },
    {
      "path": "/data/google-robots-txt-safety-pack.json",
      "reason": "The robots txt google generator query needs a compact AI-readable safety route with Googlebot-safe checks and proof links.",
      "checks": [
        "status is google_robots_txt_safety_pack_ready",
        "target queries include robots txt google generator variants",
        "safety checks include keep Googlebot open, separate Google-Extended, block private/noisy paths, add Sitemap, test priority paths, run live Googlebot checker, and pre-AI answer pack",
        "well-known JSON copy exists",
        "traffic-funnel manifest lists the safety pack"
      ]
    },
    {
      "path": "/tools/shopify-llms-txt-generator.html",
      "reason": "Shopify guide and Shopify query variants have early impressions.",
      "checks": [
        "title includes Shopify llms.txt generator",
        "interactive Shopify generator is visible",
        "WebApplication schema identifies the generator",
        "tools and guides hubs link directly to the standalone tool",
        "copy-ready Shopify llms.txt output is tracked",
        "fast answer excludes cart, checkout, account, discount, and admin URLs",
        "Shopify llms.txt publish pack links to data JSON, well-known JSON, answer pack, and checker",
        "checker CTA routes drafts to /tools/shopify-llms-txt-checker.html before validation"
      ]
    },
    {
      "path": "/data/shopify-llms-txt-publish-pack.json",
      "reason": "Shopify generator and app-intent queries need a compact AI-readable route for publish method, private-path checks, validator handoff, and answer-pack citation.",
      "checks": [
        "status is shopify_llms_txt_publish_pack_ready",
        "target queries include llms.txt generator for shopify and shopify app to generate llms.txt",
        "publish routes include static/theme, app proxy/custom app, edge worker, and headless storefront",
        "publish-readiness checks include public storefront URLs, private Shopify paths, publish route, validation, live root file, product freshness, pre-AI answer pack, and measurement",
        "well-known JSON copy exists",
        "traffic-funnel manifest lists the publish pack"
      ]
    },
    {
      "path": "/tools/chatgpt-search-visibility-checker.html",
      "reason": "ChatGPT search visibility is the top observed query, and a standalone checker is a clearer tool-intent landing page than a guide anchor.",
      "checks": [
        "title includes ChatGPT search visibility checker",
        "score and copyable report are above the fold",
        "OAI-SearchBot and GPTBot are separated",
        "measurement section separates impressions from proof",
        "AI-readable debug pack links to live report, answer pack, and proof JSON",
        "answer DB uses the checker as primary proof"
      ]
    },
    {
      "path": "/guides/chatgpt-search-visibility.html",
      "reason": "The guide has 60 page impressions and should convert informational searchers into a live public-file report.",
      "checks": [
        "title includes live domain report",
        "live report checks homepage, robots.txt, llms.txt, sitemap.xml, Googlebot, and OAI-SearchBot basics",
        "Search Console learning is updated to 243 impressions, 1 click, 49 query impressions, and 60 guide impressions",
        "ChatGPT visibility debug pack is linked from the guide as a compact proof route",
        "browser audit template still remains below the live report",
        "fake searches remain explicitly rejected"
      ]
    },
    {
      "path": "/data/chatgpt-search-visibility-debug-pack.json",
      "reason": "The top observed query needs a compact AI-readable answer route with proof links and no-fake-traffic rules.",
      "checks": [
        "status is chatgpt_visibility_debug_pack_ready",
        "target queries include chatgpt search visibility variants",
        "debug checks include live public-file report, crawler policy, llms.txt, answer pages, pre-AI answer pack, and measurement",
        "well-known JSON copy exists",
        "traffic-funnel manifest lists the debug pack"
      ]
    },
    {
      "path": "/tools/ai-crawler-log-analyzer.html",
      "reason": "Log analysis for bot detection query appeared and the log analyzer page has early impressions.",
      "checks": [
        "title includes bot detection log analysis",
        "fast demo says logs stay in browser",
        "sample buttons load Googlebot, ChatGPT search, and blocked bot logs",
        "report separates crawler hits from identity proof",
        "source-backed notes link to official crawler docs"
      ]
    },
    {
      "path": "/data/bot-detection-log-analysis-pack.json",
      "reason": "The log analysis for bot detection query needs a compact AI-readable route for redaction, bot classification, discovery-file checks, status-code review, identity guardrails, and answer-pack citation.",
      "checks": [
        "status is bot_detection_log_analysis_pack_ready",
        "target queries include log analysis for bot detection variants",
        "analysis checks include redaction, user-agent classification, discovery-file review, status-code issues, identity verification, crawler-vs-traffic separation, pre-AI answer pack, and observed-query measurement",
        "well-known JSON copy exists",
        "traffic-funnel manifest lists the log analysis pack"
      ]
    },
    {
      "path": "/guides/llms-txt-generator.html",
      "reason": "Create llm txt query appeared and the generator guide page has early impressions.",
      "checks": [
        "title starts with Create llms.txt File",
        "intro maps create llm txt to llms.txt without stuffing",
        "embedded generator appears above the workflow",
        "WebApplication schema identifies the generator",
        "validator CTA is one click from generated output"
      ]
    },
    {
      "path": "/tools/",
      "reason": "Tools hub has early page impressions and routes broad tool intent.",
      "checks": [
        "query map uses observed Search Console terms",
        "cards link to exact matching pages",
        "safe-use rules reject search manipulation"
      ]
    }
  ],
  "priorityActions": [
    {
      "rank": 1,
      "id": "llms_validator",
      "status": "active_signal",
      "primaryPage": "https://llmstxtkit.com/tools/llms-txt-validator.html",
      "primaryPath": "/tools/llms-txt-validator.html",
      "score": 250,
      "pageImpressions": 72,
      "queryImpressions": 79,
      "clicks": 1,
      "targetQueries": [
        {
          "query": "llms.txt validator",
          "impressions": 39,
          "clicks": 1
        },
        {
          "query": "llms txt validator",
          "impressions": 12,
          "clicks": 0
        },
        {
          "query": "llms validator",
          "impressions": 15,
          "clicks": 0
        },
        {
          "query": "llms.txt checker",
          "impressions": 13,
          "clicks": 0
        },
        {
          "query": "validate llms.txt",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "validate llms.txt url",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "live llms.txt validator",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "llms.txt url checker",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "llms.txt publish readiness",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "llms.txt private path checker",
          "impressions": 0,
          "clicks": 0
        }
      ],
      "userIntent": "Validate a live /llms.txt URL or pasted draft and produce a publish-readiness report before or after uploading it.",
      "pageChange": "Keep validator wording in the title and meta description, keep the live /llms.txt URL validator above the paste workflow, expose a machine-readable publish pack with live API and answer-pack proof, preserve sample-to-validate buttons, and make the no-signup publish-readiness report obvious.",
      "distributionPrompt": "Find fresh discussions where someone has a draft llms.txt file and needs to check structure, public URLs, or private-path risk.",
      "nextActions": [
        "Keep title and meta aligned with the observed query wording.",
        "Use one above-the-fold CTA that starts the matching tool or template workflow.",
        "Add one internal link from the tools hub or related guide using natural anchor text.",
        "Only distribute the page in a relevant thread when the answer is useful without the link.",
        "Check Search Console again after the next data refresh and record clicks separately from impressions."
      ]
    },
    {
      "rank": 2,
      "id": "chatgpt_search_visibility",
      "status": "active_signal",
      "primaryPage": "https://llmstxtkit.com/tools/chatgpt-search-visibility-checker.html",
      "primaryPath": "/tools/chatgpt-search-visibility-checker.html",
      "score": 164,
      "pageImpressions": 0,
      "queryImpressions": 82,
      "clicks": 0,
      "targetQueries": [
        {
          "query": "chatgpt search visibility",
          "impressions": 82,
          "clicks": 0
        },
        {
          "query": "chat gpt search visibility",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "ai search visibility checker",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "chatgpt search visibility checker",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "why is my website not showing in chatgpt search",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "chatgpt website visibility",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "chatgpt visibility report",
          "impressions": 0,
          "clicks": 0
        }
      ],
      "userIntent": "Improve ChatGPT search visibility without fake clicks, search manipulation, or spammy links.",
      "pageChange": "Keep the standalone checker as the exact tool-intent page, keep the live domain report above the fold, and expose a machine-readable debug pack so searchers and AI assistants can find the report, proof links, and answer pack without scanning every page.",
      "distributionPrompt": "Find discussions about ChatGPT search visibility where a crawlability and measurement checklist is genuinely helpful.",
      "nextActions": [
        "Keep title and meta aligned with the observed query wording.",
        "Use one above-the-fold CTA that starts the matching tool or template workflow.",
        "Add one internal link from the tools hub or related guide using natural anchor text.",
        "Only distribute the page in a relevant thread when the answer is useful without the link.",
        "Check Search Console again after the next data refresh and record clicks separately from impressions."
      ]
    },
    {
      "rank": 3,
      "id": "google_robots_generator",
      "status": "active_signal",
      "primaryPage": "https://llmstxtkit.com/tools/robots-txt-google-generator.html",
      "primaryPath": "/tools/robots-txt-google-generator.html",
      "score": 70,
      "pageImpressions": 0,
      "queryImpressions": 35,
      "clicks": 0,
      "targetQueries": [
        {
          "query": "robots txt google generator",
          "impressions": 35,
          "clicks": 0
        },
        {
          "query": "robots.txt google generator",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "google robots txt generator",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "google robots.txt generator",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "googlebot robots.txt generator",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "googlebot path tester",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "google extended robots txt generator",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "googlebot robots.txt checker",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "check live robots.txt googlebot",
          "impressions": 0,
          "clicks": 0
        }
      ],
      "userIntent": "Generate or check Googlebot-safe robots.txt rules while separating Google-Extended and AI crawler policies.",
      "pageChange": "Use the exact-query quick-start page, lead with robots txt google generator wording, warn not to blanket-block Googlebot, link to the full Google-safe generator, expose a Google robots.txt safety pack for AI retrieval, then route output or live domains to the Googlebot robots.txt checker before publishing.",
      "distributionPrompt": "Find robots.txt questions involving Googlebot, Google-Extended, GPTBot, OAI-SearchBot, or accidental Disallow rules.",
      "nextActions": [
        "Keep title and meta aligned with the observed query wording.",
        "Use one above-the-fold CTA that starts the matching tool or template workflow.",
        "Add one internal link from the tools hub or related guide using natural anchor text.",
        "Only distribute the page in a relevant thread when the answer is useful without the link.",
        "Check Search Console again after the next data refresh and record clicks separately from impressions."
      ]
    },
    {
      "rank": 4,
      "id": "llms_txt_checker",
      "status": "active_signal",
      "primaryPage": "https://llmstxtkit.com/tools/llms-txt-checker.html",
      "primaryPath": "/tools/llms-txt-checker.html",
      "score": 38,
      "pageImpressions": 0,
      "queryImpressions": 19,
      "clicks": 0,
      "targetQueries": [
        {
          "query": "llms.txt checker",
          "impressions": 13,
          "clicks": 0
        },
        {
          "query": "llms checker",
          "impressions": 6,
          "clicks": 0
        },
        {
          "query": "live llms.txt checker",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "check live llms.txt",
          "impressions": 0,
          "clicks": 0
        }
      ],
      "userIntent": "Quick-scan an llms.txt draft or live /llms.txt URL for structure, reachability, public URLs, Shopify risks, and private paths before using the full validator.",
      "pageChange": "Route checker queries to the standalone quick-scan page, lead with 60-second checker wording, add a live /llms.txt URL checker, keep the paste box above the fold, and link to the full validator as the next step.",
      "distributionPrompt": "Find discussions where someone wants to check an existing llms.txt draft or live root file quickly rather than learn the whole format from scratch.",
      "nextActions": [
        "Keep title and meta aligned with the observed query wording.",
        "Use one above-the-fold CTA that starts the matching tool or template workflow.",
        "Add one internal link from the tools hub or related guide using natural anchor text.",
        "Only distribute the page in a relevant thread when the answer is useful without the link.",
        "Check Search Console again after the next data refresh and record clicks separately from impressions."
      ]
    },
    {
      "rank": 5,
      "id": "shopify_llms_txt",
      "status": "active_signal",
      "primaryPage": "https://llmstxtkit.com/tools/shopify-llms-txt-generator.html",
      "primaryPath": "/tools/shopify-llms-txt-generator.html",
      "score": 38,
      "pageImpressions": 0,
      "queryImpressions": 19,
      "clicks": 0,
      "targetQueries": [
        {
          "query": "llms.txt for shopify",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "llms.txt generator for shopify",
          "impressions": 10,
          "clicks": 0
        },
        {
          "query": "shopify app to generate llms.txt",
          "impressions": 9,
          "clicks": 0
        },
        {
          "query": "shopify llms.txt publish",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "shopify llms.txt app proxy",
          "impressions": 0,
          "clicks": 0
        }
      ],
      "userIntent": "Create a Shopify-safe llms.txt file using product, collection, policy, and buying guide URLs, then decide whether an app is needed to publish /llms.txt.",
      "pageChange": "Route Shopify generator queries to the exact standalone tool page, keep cart and checkout exclusion visible above the fold, expose a machine-readable Shopify publish pack, add an app-or-no-app publishing planner to the high-impression guide, and route generated drafts to the Shopify checker before the full validator.",
      "distributionPrompt": "Find Shopify support/community questions about AI search visibility, product-page context, or crawler-safe store maps.",
      "nextActions": [
        "Keep title and meta aligned with the observed query wording.",
        "Use one above-the-fold CTA that starts the matching tool or template workflow.",
        "Add one internal link from the tools hub or related guide using natural anchor text.",
        "Only distribute the page in a relevant thread when the answer is useful without the link.",
        "Check Search Console again after the next data refresh and record clicks separately from impressions."
      ]
    },
    {
      "rank": 6,
      "id": "bot_log_analysis",
      "status": "active_signal",
      "primaryPage": "https://llmstxtkit.com/tools/ai-crawler-log-analyzer.html",
      "primaryPath": "/tools/ai-crawler-log-analyzer.html",
      "score": 26,
      "pageImpressions": 14,
      "queryImpressions": 6,
      "clicks": 0,
      "targetQueries": [
        {
          "query": "log analysis for bot detection",
          "impressions": 6,
          "clicks": 0
        },
        {
          "query": "bot detection log analyzer",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "bot detection log analysis",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "access log bot detection",
          "impressions": 0,
          "clicks": 0
        },
        {
          "query": "detect bots in server logs",
          "impressions": 0,
          "clicks": 0
        }
      ],
      "userIntent": "Analyze server logs to identify bot, crawler, and AI crawler requests.",
      "pageChange": "Tie log analysis language to bot detection and crawler proof, add sample log buttons, embed the bot detection analyzer into the high-impression log analysis guide, expose a machine-readable bot detection log analysis pack, then route users to paste logs without uploading private data.",
      "distributionPrompt": "Find developer or analytics questions about recognizing bot traffic in access logs.",
      "nextActions": [
        "Keep title and meta aligned with the observed query wording.",
        "Use one above-the-fold CTA that starts the matching tool or template workflow.",
        "Add one internal link from the tools hub or related guide using natural anchor text.",
        "Only distribute the page in a relevant thread when the answer is useful without the link.",
        "Check Search Console again after the next data refresh and record clicks separately from impressions."
      ]
    },
    {
      "rank": 7,
      "id": "create_llm_txt",
      "status": "watch",
      "primaryPage": "https://llmstxtkit.com/tools/create-llms-txt.html",
      "primaryPath": "/tools/create-llms-txt.html",
      "score": 0,
      "pageImpressions": 0,
      "queryImpressions": 0,
      "clicks": 0,
      "targetQueries": [
        {
          "query": "create llm txt",
          "impressions": 0,
          "clicks": 0
        }
      ],
      "userIntent": "Create the first llms.txt file from a simple workflow or sitemap.",
      "pageChange": "Route the query to the standalone create llms.txt tool, put the browser generator above the fold, and route sitemap-heavy users to the sitemap converter or draft users to the validator.",
      "distributionPrompt": "Find beginner questions asking what llms.txt is and how to make the first version safely with a generator and validation checklist.",
      "nextActions": [
        "Keep title and meta aligned with the observed query wording.",
        "Use one above-the-fold CTA that starts the matching tool or template workflow.",
        "Add one internal link from the tools hub or related guide using natural anchor text.",
        "Only distribute the page in a relevant thread when the answer is useful without the link.",
        "Check Search Console again after the next data refresh and record clicks separately from impressions."
      ]
    }
  ],
  "distributionHandOff": {
    "status": "priority_distribution_ready",
    "readyActions": 5,
    "command": "npm run distribution:priority",
    "note": "Use the priority distribution pack only for answer-first placements with affiliation disclosure."
  },
  "commands": {
    "refreshLearningSprint": "npm run search:learning",
    "refreshOrganicProof": "npm run organic:proof",
    "refreshPriorityDistribution": "npm run distribution:priority",
    "refreshMeasurement": "npm run traffic:measurement",
    "refreshGoalAudit": "npm run goal:audit",
    "verify": "npm run verify",
    "package": "npm run package"
  },
  "safety": {
    "noExternalPostingDoneByThisScript": true,
    "noFakeSearchesOrClicks": true,
    "directUsefulLinksPreferred": true,
    "ownerMustAuthorizeExternalPosting": true
  }
}
