# GrowthDept robots.txt. # # Open to crawlers: the homepage, /pricing, /help, /guides, /developers, /connect-ai, the assistant pages /claude, /chatgpt and # /gemini, /contact, /legal and the policies under it, /llms.txt, and the # site's own stylesheet and scripts under /assets/ (a crawler that cannot fetch them cannot render the page). # Open but marked noindex in the page itself, so a crawler can read the instruction: /signup and /partner. # Closed: /login, the password flows, the signed-in app and the operator console. # # HOW THE CLOSED ROUTES ARE WRITTEN, and why. A Disallow is a PREFIX match, so "Disallow: /app" also closed # /apple-touch-icon.png, "Disallow: /assets" closed the bundles every page loads, and "Disallow: /marketing" would # close any page the SEO plan puts at /marketing-cost-uk. Each signed-in route is therefore closed as the exact # address ("/home$") plus everything under it ("/home/"), never as a bare prefix, so a public page whose slug merely # STARTS with the name of an app route (/content-marketing-for-small-business, /seo-for-small-business, # /plan-your-marketing, /app-store-marketing) is not swallowed. "$" is understood by Google and Bing; a crawler that # ignores it leaves these signed-in addresses crawlable, which costs nothing because every one of them is behind # sign-in and marked noindex. The sign-in flow keeps plain prefixes: /login, /forgot-password and /reset-password # carry query strings, and no public slug starts with those words. # # Customer landing pages under /p/ stay crawlable. They are what GrowthDept builds for its customers, and each # business lists its own at /p/sitemap/. The sitemap below is an index: GrowthDept's own sitemap, and # one child for each business that has a page its owner approved, so those pages can be found. A page the owner # has not approved is in none of them. # # Which pages are indexable is decided in src/lib/seo-head.ts and checked by tests/seo_public_routes.test.ts, # including that nothing Disallowed here is listed in the sitemap, that /assets/ and /apple-touch-icon.png are # crawlable, and that no rule here swallows a slug the SEO plan wants. User-agent: * Allow: /$ Allow: /pricing Allow: /help Allow: /guides Allow: /developers Allow: /connect-ai Allow: /claude Allow: /chatgpt Allow: /gemini Allow: /llms.txt Allow: /contact Allow: /legal Allow: /p/ Allow: /assets/ Disallow: /mcp$ Disallow: /mcp/ Disallow: /oauth$ Disallow: /oauth/ Disallow: /login Disallow: /forgot-password Disallow: /reset-password Disallow: /auth/ Disallow: /ops$ Disallow: /ops/ Disallow: /app$ Disallow: /app/ Disallow: /app-growth$ Disallow: /app-growth/ Disallow: /app-reviews$ Disallow: /app-reviews/ Disallow: /home$ Disallow: /home/ Disallow: /onboarding$ Disallow: /onboarding/ Disallow: /welcome$ Disallow: /welcome/ Disallow: /strategy$ Disallow: /strategy/ Disallow: /content$ Disallow: /content/ Disallow: /studio$ Disallow: /studio/ Disallow: /publishing$ Disallow: /publishing/ Disallow: /engagement$ Disallow: /engagement/ Disallow: /analyst$ Disallow: /analyst/ Disallow: /metrics$ Disallow: /metrics/ Disallow: /mission$ Disallow: /mission/ Disallow: /library$ Disallow: /library/ Disallow: /assets$ Disallow: /integrations$ Disallow: /integrations/ Disallow: /inbox$ Disallow: /inbox/ Disallow: /improvements$ Disallow: /improvements/ Disallow: /results$ Disallow: /results/ Disallow: /activity$ Disallow: /activity/ Disallow: /settings$ Disallow: /settings/ Disallow: /billing$ Disallow: /billing/ Disallow: /controls$ Disallow: /controls/ Disallow: /pages$ Disallow: /pages/ Disallow: /plan$ Disallow: /plan/ Disallow: /blog$ Disallow: /blog/ Disallow: /calling$ Disallow: /calling/ Disallow: /leads$ Disallow: /leads/ Disallow: /marketing$ Disallow: /marketing/ Disallow: /mobile-app$ Disallow: /mobile-app/ Disallow: /seo$ Disallow: /seo/ Disallow: /v2$ Disallow: /v2/ Disallow: /youtube$ Disallow: /youtube/ Sitemap: https://growthdept.app/sitemap.xml