# robots.txt for smklog.com # Content signals: search allowed, AI answers/citation allowed, AI training # allowed (owner decision 2026-08-07: being in the training corpora is # long-term visibility for a small brand; edge blocks are off to match). User-agent: * Content-Signal: search=yes, ai-input=yes, ai-train=yes, use=reference # No "Allow: /" here on purpose. Everything not disallowed is allowed by # default, so the line added nothing — but it sat above the Disallow rules, # and a parser that takes the first match rather than the longest one (RFC # 9309 requires longest; older parsers do not) let it win over every internal # screen below. Removing it makes the rules hold under either reading. # Internal screens. Pages 308-redirects the .html form to the clean URL, and # robots matches prefixes literally, so a rule written against # /assets/orders.html sat on the far side of a redirect the crawler never # reaches, and /assets/orders was served to everyone. Extension-less prefixes # cover both forms, the way /offline already does. Disallow: /assets/orders Disallow: /assets/account Disallow: /assets/console Disallow: /assets/owner-analytics Disallow: /assets/label Disallow: /assets/status Disallow: /chrome-extension/ # Cloudflare rewrites mailto: links to this path; the bare URL has no decode # fragment, so a crawler that follows it always gets a 404. Nothing to index. Disallow: /cdn-cgi/l/ # The PWA offline shell. AI answer bots found it through sw.js and made it the # single most-retrieved page for answers (40 of 378 in one day) — an empty # fallback with nothing to cite. Content lives everywhere else. Disallow: /offline Disallow: /offline.html Sitemap: https://smklog.com/sitemap.xml