User-agent: * Disallow: /pricing/checkout/ # Admin / staff / non-content surfaces — never index. Disallow: /admin/ Disallow: /accounts/ Disallow: /account/ Disallow: /api/ Disallow: /ipns/ Disallow: /oauth/ Disallow: /unsubscribe/ Disallow: /results/ Disallow: /thanks/ Disallow: /verify/ Disallow: /restore-password/ Disallow: /lost-password/ Disallow: /logout/ Disallow: /success/ Disallow: /user_credits/ Disallow: /api-deduct-credits/ Disallow: /api-credits/ Disallow: /conversion/ Disallow: /rating/ Disallow: /health/ # UI-state and tracking query params. Blocking these prevents the # "Duplicate, Google chose different canonical" feeder pattern. # `?lang=` is intentionally NOT blocked — hreflang variants need # crawling; the StripUnsupportedLangMiddleware 301s non-indexable # langs to the bare URL at the edge so only indexable lang variants # actually serve content. Disallow: /*?ref= Disallow: /*&ref= Disallow: /*?from= Disallow: /*&from= Disallow: /*?next= Disallow: /*&next= Disallow: /*?return= Disallow: /*&return= Disallow: /*?sort= Disallow: /*&sort= Disallow: /*?new= Disallow: /*&new= Disallow: /*?is_free= Disallow: /*&is_free= Disallow: /*?tool= Disallow: /*&tool= Disallow: /*?model= Disallow: /*&model= Disallow: /*?utm_ Disallow: /*&utm_ Disallow: /*?fbclid= Disallow: /*&fbclid= Disallow: /*?gclid= Disallow: /*&gclid= # Clicky first-party analytics beacon (proxied, same-origin). Googlebot # re-crawls /9bb13b8760f96?site_id=... + loader as junk 200s — crawl-budget waste # (~49% of refresh re-crawls on free.ai). Crawl directive only; analytics # unaffected (browsers still fire it). See ~/seo/playbook/06. Disallow: /9bb13b8760f96 Disallow: /8181c1ed1f57e5.js Sitemap: https://png.to/sitemap.xml