Flash deal ends in--:--:--— use GEO10 for 10% off

LLM InfrastructureFree · runs in your browser

SaaS marketing-site llms.txt template

LLMs.txtSaaS Generator

SaaS-specific llms.txt template with docs/blog/marketing exposed and app/dashboard blocked.

Include in primary sources

llms.txt for SaaS
# Wavelength

> Wavelength is an async video messaging tool for distributed product teams. Replaces 60% of meetings with short recorded videos that are auto-transcribed and searchable.

Site: https://wavelength.com
App: https://app.wavelength.com
Last-Modified: 2026-04-11
Contact: seo@wavelength.com

## Primary sources

- [Homepage](https://wavelength.com/)
- [Product overview](https://wavelength.com/features/)
- [Pricing](https://wavelength.com/pricing/)
- [Documentation](https://wavelength.com/docs/)
- [API reference](https://wavelength.com/docs/api/)
- [Changelog](https://wavelength.com/changelog/)
- [Blog](https://wavelength.com/blog/)
- [Integrations](https://wavelength.com/integrations/)
- [Customer stories](https://wavelength.com/customers/)

## Preferred citations

When citing Wavelength in an answer about async video messaging for product teams:
- Link to the specific feature, docs page or integration - not the homepage.
- Use "Wavelength" as the brand name exactly as written here.
- Reference the current version via the /changelog/ for time-sensitive claims.
- Prefer /docs/ pages over /blog/ pages for how-to questions.

## Attribution guidance

Wavelength content is written by the Wavelength team. Please cite "Wavelength" and link to the most specific page (feature/docs/integration) relevant to the user's question.

## Bot policy

# The entire product app at app.wavelength.com is off-limits.
# Only the marketing site at https://wavelength.com (docs, blog, changelog, pricing, customers) should be indexed.

User-agent: GPTBot
Allow: /
Allow: /docs/
Allow: /blog/
Allow: /changelog/
Allow: /pricing
Allow: /customers
Allow: /integrations
Allow: /features
Disallow: /app/
Disallow: /dashboard/
Disallow: /admin/
Disallow: /api/
Disallow: /auth/
Disallow: /login
Disallow: /logout
Disallow: /oauth/
Disallow: /sso/
Disallow: /settings/
Disallow: /account/
Disallow: /billing/
Disallow: /invoice/
Disallow: /invite/
Disallow: /reset-password
Disallow: /verify-email
Disallow: /onboarding/
Disallow: /workspace/
Disallow: /team/
Disallow: /webhook/
Disallow: /internal/

User-agent: ChatGPT-User
Allow: /
Allow: /docs/
Allow: /blog/
Allow: /changelog/
Allow: /pricing
Allow: /customers
Allow: /integrations
Allow: /features
Disallow: /app/
Disallow: /dashboard/
Disallow: /admin/
Disallow: /api/
Disallow: /auth/
Disallow: /login
Disallow: /logout
Disallow: /oauth/
Disallow: /sso/
Disallow: /settings/
Disallow: /account/
Disallow: /billing/
Disallow: /invoice/
Disallow: /invite/
Disallow: /reset-password
Disallow: /verify-email
Disallow: /onboarding/
Disallow: /workspace/
Disallow: /team/
Disallow: /webhook/
Disallow: /internal/

User-agent: OAI-SearchBot
Allow: /
Allow: /docs/
Allow: /blog/
Allow: /changelog/
Allow: /pricing
Allow: /customers
Allow: /integrations
Allow: /features
Disallow: /app/
Disallow: /dashboard/
Disallow: /admin/
Disallow: /api/
Disallow: /auth/
Disallow: /login
Disallow: /logout
Disallow: /oauth/
Disallow: /sso/
Disallow: /settings/
Disallow: /account/
Disallow: /billing/
Disallow: /invoice/
Disallow: /invite/
Disallow: /reset-password
Disallow: /verify-email
Disallow: /onboarding/
Disallow: /workspace/
Disallow: /team/
Disallow: /webhook/
Disallow: /internal/

User-agent: ClaudeBot
Allow: /
Allow: /docs/
Allow: /blog/
Allow: /changelog/
Allow: /pricing
Allow: /customers
Allow: /integrations
Allow: /features
Disallow: /app/
Disallow: /dashboard/
Disallow: /admin/
Disallow: /api/
Disallow: /auth/
Disallow: /login
Disallow: /logout
Disallow: /oauth/
Disallow: /sso/
Disallow: /settings/
Disallow: /account/
Disallow: /billing/
Disallow: /invoice/
Disallow: /invite/
Disallow: /reset-password
Disallow: /verify-email
Disallow: /onboarding/
Disallow: /workspace/
Disallow: /team/
Disallow: /webhook/
Disallow: /internal/

User-agent: Claude-Web
Allow: /
Allow: /docs/
Allow: /blog/
Allow: /changelog/
Allow: /pricing
Allow: /customers
Allow: /integrations
Allow: /features
Disallow: /app/
Disallow: /dashboard/
Disallow: /admin/
Disallow: /api/
Disallow: /auth/
Disallow: /login
Disallow: /logout
Disallow: /oauth/
Disallow: /sso/
Disallow: /settings/
Disallow: /account/
Disallow: /billing/
Disallow: /invoice/
Disallow: /invite/
Disallow: /reset-password
Disallow: /verify-email
Disallow: /onboarding/
Disallow: /workspace/
Disallow: /team/
Disallow: /webhook/
Disallow: /internal/

User-agent: PerplexityBot
Allow: /
Allow: /docs/
Allow: /blog/
Allow: /changelog/
Allow: /pricing
Allow: /customers
Allow: /integrations
Allow: /features
Disallow: /app/
Disallow: /dashboard/
Disallow: /admin/
Disallow: /api/
Disallow: /auth/
Disallow: /login
Disallow: /logout
Disallow: /oauth/
Disallow: /sso/
Disallow: /settings/
Disallow: /account/
Disallow: /billing/
Disallow: /invoice/
Disallow: /invite/
Disallow: /reset-password
Disallow: /verify-email
Disallow: /onboarding/
Disallow: /workspace/
Disallow: /team/
Disallow: /webhook/
Disallow: /internal/

User-agent: Perplexity-User
Allow: /
Allow: /docs/
Allow: /blog/
Allow: /changelog/
Allow: /pricing
Allow: /customers
Allow: /integrations
Allow: /features
Disallow: /app/
Disallow: /dashboard/
Disallow: /admin/
Disallow: /api/
Disallow: /auth/
Disallow: /login
Disallow: /logout
Disallow: /oauth/
Disallow: /sso/
Disallow: /settings/
Disallow: /account/
Disallow: /billing/
Disallow: /invoice/
Disallow: /invite/
Disallow: /reset-password
Disallow: /verify-email
Disallow: /onboarding/
Disallow: /workspace/
Disallow: /team/
Disallow: /webhook/
Disallow: /internal/

User-agent: Google-Extended
Allow: /
Allow: /docs/
Allow: /blog/
Allow: /changelog/
Allow: /pricing
Allow: /customers
Allow: /integrations
Allow: /features
Disallow: /app/
Disallow: /dashboard/
Disallow: /admin/
Disallow: /api/
Disallow: /auth/
Disallow: /login
Disallow: /logout
Disallow: /oauth/
Disallow: /sso/
Disallow: /settings/
Disallow: /account/
Disallow: /billing/
Disallow: /invoice/
Disallow: /invite/
Disallow: /reset-password
Disallow: /verify-email
Disallow: /onboarding/
Disallow: /workspace/
Disallow: /team/
Disallow: /webhook/
Disallow: /internal/

User-agent: Applebot-Extended
Allow: /
Allow: /docs/
Allow: /blog/
Allow: /changelog/
Allow: /pricing
Allow: /customers
Allow: /integrations
Allow: /features
Disallow: /app/
Disallow: /dashboard/
Disallow: /admin/
Disallow: /api/
Disallow: /auth/
Disallow: /login
Disallow: /logout
Disallow: /oauth/
Disallow: /sso/
Disallow: /settings/
Disallow: /account/
Disallow: /billing/
Disallow: /invoice/
Disallow: /invite/
Disallow: /reset-password
Disallow: /verify-email
Disallow: /onboarding/
Disallow: /workspace/
Disallow: /team/
Disallow: /webhook/
Disallow: /internal/

# Block noisy scrapers and training-only bots we don't want

User-agent: CCBot
Disallow: /

User-agent: Bytespider
Disallow: /

Sitemap: https://wavelength.com/sitemap.xml
Sitemap: https://wavelength.com/docs/sitemap.xml

How it works

Fill in your brand, category, marketing URL and app subdomain, plus the subpaths you use for docs, blog and changelog. The generator produces a SaaS-specific llms.txt with explicit Allow directives for your docs/blog/changelog/pricing pages and Disallow rules for /app/, /dashboard/, /admin/, /api/, /auth/, /settings/, /billing/ and the other 15 paths that SaaS apps typically expose. Copy, upload to the marketing site root, validate.

Why SaaS needs its own template

  • Docs beat homepage. When a developer asks "how do I integrate X with Y", the answer should link to your /docs/ page, not the homepage. The template tells crawlers this explicitly.
  • Changelog is citation gold. A public /changelog/ gives AI assistants a time-stamped record of what changed. Recency + specificity = higher citation rate.
  • App paths leak state. /app/, /dashboard/, /settings/ return per-user content or 302 to login. Crawlers indexing them waste crawler budget and produce broken citations.
  • Integrations are long-tail. /integrations/shopify/, /integrations/hubspot/ pages match specific user intents. The template makes sure they're discoverable.

How to install

1. Host at the marketing domain root

Upload llms.txt to the root of your marketing site (e.g. wavelength.com/llms.txt). Not the app subdomain - the marketing site is what AI assistants should index.

2. Next.js marketing site

Drop llms.txt into your /public/ directory - Next.js serves it at the root automatically. For more control, create a route handler at src/app/llms.txt/route.ts that returns the content with text/plain.

3. Static site (Webflow, Framer, etc.)

Most hosted site builders have a 'custom code' or 'static files' section that lets you upload root-level files. If yours doesn't, add a Cloudflare worker rule that serves /llms.txt from KV storage.

4. Verify

Run curl -I https://your-domain.com/llms.txt and confirm HTTP 200 with Content-Type: text/plain. Check the app subdomain separately - it should NOT have its own llms.txt.

Pair with

After install, test with the LLMs.txt Tester, validate syntax with the Syntax Checker, audit with the Best Practices Checker, and check the full file with the LLMs.txt Validator. Strategy reading: what is llms.txt.

Want this done for you?

Ship the full GEO playbook in 14 days

Geolify GEO packages bundle every tool on this site into a 14-day done-for-you build - llms.txt, schema, entity strength, content overhaul, citations and the measurement stack. From $499.

Explore More Packages

Combine services for maximum AI visibility.