# Whitelist policy: only the homepage, contact page, policy pages and # spotlight pages (plus the Rendering Photos they embed) may be crawled. # Everything else (designer app, app.js, pricing data, API routes, other # assets) is off-limits to crawlers. User-agent: * Allow: /$ # Kept crawlable on purpose: /index.html now 301s to / (vercel.json). Crawlers # must be able to fetch it to see the redirect and drop the duplicate URL. Allow: /index.html Allow: /contact.html Allow: /spotlight.html Allow: /spotlight/ Allow: /learn.html Allow: /learn/guide/ Allow: /community.html Allow: /privacy.html Allow: /terms.html Allow: /Rendering%20Photos/ # MUST stay crawlable: the public pages' entire stylesheet. Google and Bing # render a page before judging it — block the CSS and they see an unstyled # wall of text (and flag it mobile-unfriendly). This replaced the old # cdn.tailwindcss.com script, which was external and so never robots-gated. Allow: /assets/tw.css # llms.txt — the plain-Markdown site guide written for AI assistants # (ChatGPT, Gemini, Claude, Perplexity). It returned 200 but the catch-all # Disallow below made every compliant AI crawler skip it, so the one file we # wrote specifically for them was the one file they could not read # (found 2026-08-25 — fifth recurrence of the whitelist trap). Allow: /llms.txt # IndexNow / site-verification key file (Bing Webmaster Tools). Allow: /71abb468be9141e38aebbf3d1f7283ae.txt # The sitemap itself. Google/Bing fetch it under robots rules too — without # this line the catch-all Disallow below makes GSC report "Couldn't fetch". Allow: /sitemap.xml # spotlight.html and the homepage trends section render their article grid by # fetching this JSON. Google's renderer honors robots for subresources too — # with it blocked, spotlight.html rendered as an empty shell and GSC live test # rejected it as a Soft 404 (found 2026-08-23). Allow: /spotlights.json # The designer tool and its 2D/3D editor interfaces (and the JS that powers # them) must never be crawled or scraped. These are named explicitly below # for clarity; the catch-all Disallow at the end already blocks everything # outside the whitelist above. Disallow: /designer.html Disallow: /start.html Disallow: /settings.html Disallow: /app.js Disallow: /edit-mode-3d.js Disallow: /design-helper-3d.js Disallow: /countertop-edit.js # ⭐⭐ 内部页面**故意一个都不在这里点名**。robots.txt 是公开可读的:在这里 # 写 `Disallow: /<路径>` 等于对所有人发布一份「这个站有哪些内部页面」的目录 # (Kim 2026-08-14「不希望这个链接可以被找到」)。下面那条 catch-all 已经把 # 白名单以外的一切都挡住了,效果完全一样,只是不再点名。内部页面另有 # 和 vercel.json 里的 # X-Robots-Tag 两道,都不依赖这里点名。 # # ⚠️ 所以:**以后新增内部页面时,不要往这个文件里加 Disallow 行。** 加了 # 就是把它公布出去。 # # Catch-all: block everything not explicitly allowed above. Disallow: / Sitemap: https://www.flipkitchen.ca/sitemap.xml