GEO FAQ Hosting — Pick Your Setup¶
The GEO Agent generates SEO-optimized FAQ pages from real visitor questions. Three hosting setups exist for where those pages are served from. The right one depends on what tools you control and how much SEO authority your main domain already has.
Find yourself below. Each persona links straight to the recipe you need.
Quickest match — "Just tell me what to do"¶
| If this sounds like you... | Pick | Time |
|---|---|---|
| Trying GEO Agent, no DNS access yet | Rose-hosted (default) | 0 min — already live |
| You can edit DNS, that's about it | Subdomain (CNAME) | 5 min |
| You run a Next.js site on Vercel | Subdirectory via Vercel rewrites | 15 min |
| Your site is behind Cloudflare (orange cloud) | Subdirectory via Cloudflare Worker or Rules | 30 min |
| You're on Webflow / Wix / Squarespace / Shopify | Subdomain (CNAME) — easiest path. Subdirectory needs Cloudflare in front. | 5 min (or 60 min for subdirectory) |
| You manage your own Nginx / Apache origin | Subdirectory via reverse proxy block | 20 min |
| Enterprise stack on AWS CloudFront | Subdirectory via CloudFront behavior + Function | 45 min |
WordPress on a host that allows .htaccess mod_proxy |
Subdirectory via .htaccess |
15 min |
| WordPress on Kinsta / WP Engine / Pressable | Subdomain (CNAME) — managed hosts block proxy modules | 5 min |
Need detail on why? Keep reading — personas below.
Personas¶
Persona 1 — "I'm evaluating Rose and don't want to touch anything yet"¶
You: Marketing manager, growth lead, or founder running a quick GEO trial. No DNS access urgent enough to chase IT for.
Pick: Rose-hosted (default). Your pages are at faq.userose.ai/yourcompany.com/.... Nothing to do.
Trade-off: SEO authority and brand recognition land on faq.userose.ai, not your domain. Fine for trials, not for production scale-up.
Next step: Open your backoffice GEO page — your pages are already indexable. Migrate to subdomain or subdirectory once you're convinced.
Persona 2 — "I own DNS, that's about my limit"¶
You: Solo founder, marketing lead at a SaaS company, or someone who can log into Cloudflare/Route 53/Namecheap but doesn't want to touch CDN rules or web server configs.
Pick: Subdomain (CNAME) → faq.yourcompany.com.
Why: A single CNAME record (5 min) gets your brand on the URL and moves SEO authority to a domain you own. Rose provisions TLS and runs the rest.
Trade-off: Google treats subdomains as separate sites from www.yourcompany.com. Backlinks accrue to the subdomain, not your main domain. Strong setup, not the strongest.
Next step: Subdomain Setup (CNAME)
Persona 3 — "We're on Next.js / Vercel"¶
You: Modern web team running a Next.js app on Vercel (or Netlify with rewrites). You ship next.config.js changes every week.
Pick: Subdirectory via Vercel rewrites → www.yourcompany.com/faq/....
Why: Vercel rewrites are a one-line block in next.config.js. Deploys instantly. Your main-domain SEO authority directly powers the GEO content from day one — strongest possible setup with minimum effort.
The config:
// next.config.js
async rewrites() {
return [
{ source: "/faq", destination: "https://faq.userose.ai/yourcompany.com/frequently-asked-questions" },
{ source: "/faq/:path*", destination: "https://faq.userose.ai/yourcompany.com/:path*" },
];
}
Next step: Subdirectory Setup → Vercel / Next.js section
Persona 4 — "Cloudflare proxies our domain (orange cloud)"¶
You: Engineering team using Cloudflare as your CDN/WAF. You can edit Page Rules, Transform Rules, and deploy Workers.
Pick: Subdirectory via Cloudflare Worker (or Rules-only, if you'd rather skip Workers) → www.yourcompany.com/faq/....
Why: Cloudflare lets you intercept traffic before it hits your origin. Worker handles canonical guards, header injection, redirect rewrites cleanly. Rules-only works too if you want zero JS — three Dashboard rules and you're done.
The choice:
- Worker if you want canonical enforcement, asset CORS handling, or custom logic.
- Rules-only if you want zero JS and zero ops.
Next step:
- Worker: Subdirectory Setup → Cloudflare Worker section
- Rules: Subdirectory Setup → Cloudflare Rules (no Worker) section
Persona 5 — "I'm on Webflow / Wix / Squarespace / Shopify / HubSpot CMS / Framer"¶
You: Marketing-led team running on a hosted no-code or low-code CMS. You can't SSH anywhere or edit a nginx.conf.
Default pick: Subdomain (CNAME) → faq.yourcompany.com. The CMS doesn't fight you, the setup takes 5 min, your brand is in the URL.
If you want subdirectory anyway: Put Cloudflare in front of your CMS first, then use the Cloudflare Worker recipe.
Steps for the subdirectory path:
- Move DNS for
www.yourcompany.comto Cloudflare (proxied, orange cloud). - Set Cloudflare SSL mode to Full (strict). Verify your CMS site still loads cleanly.
- Apply the Cloudflare Worker recipe on
/faq*route.
Effort: 60 min vs 5 min for subdomain. Worth it if your main www.yourcompany.com is a serious SEO asset.
Next step:
- Subdomain: Subdomain Setup (CNAME)
- Subdirectory: Subdirectory Setup → Hosted CMS section
Persona 6 — "We run our own Nginx or Apache origin"¶
You: Backend team running a classic VM or container setup. You own the web server config.
Pick: Subdirectory via reverse-proxy directive → www.yourcompany.com/faq/....
Why: Adding a location /faq/ { proxy_pass ... } block is 5 lines. Reuses your TLS cert, reuses your access logs, no new infrastructure.
Next step:
Persona 7 — "Enterprise stack on AWS CloudFront"¶
You: DevOps/platform engineering team running CloudFront in front of S3 / ALB / API Gateway. Change-managed via Terraform or CDK.
Pick: Subdirectory via CloudFront behavior → www.yourcompany.com/faq/....
Why: Add one cache behavior + a CloudFront Function. Terraform-friendly, audit-friendly, fits your existing change process.
Next step: Subdirectory Setup → AWS CloudFront section
Persona 8 — "WordPress — but which kind?"¶
Two sub-personas:
8a. Self-hosted WordPress on a VPS or cPanel host (with mod_proxy allowed):
- Pick: Subdirectory via .htaccess — 3 lines.
- Next step: Subdirectory Setup → WordPress section
8b. WordPress on managed host (Kinsta, WP Engine, Pressable, Flywheel, Bluehost):
- These hosts disable mod_proxy for safety. You can't reverse-proxy from inside WordPress.
- Pick: Subdomain (CNAME) as default. Or put Cloudflare in front of the host and use the Cloudflare Worker recipe.
- Next step: Subdomain Setup (CNAME)
Persona 9 — "I'm an agency managing this for a client"¶
You: Marketing or SEO agency setting GEO up across multiple clients. You want a repeatable playbook.
Default playbook: Subdomain (CNAME) for every client. Five-minute DNS task per client, no per-client infrastructure work.
Upgrade path: For your top-tier clients with significant main-domain authority, upsell subdirectory as a higher-touch deliverable. One agency engineer can deploy a Cloudflare Worker per client in ~20 min once you have the template.
Next step:
- Playbook baseline: Subdomain Setup (CNAME)
- Upsell tier: Subdirectory Setup (Reverse Proxy)
Side-by-side comparison¶
| Rose-hosted (default) | Subdomain (CNAME) | Subdirectory (proxy) | |
|---|---|---|---|
| Example URL | faq.userose.ai/yourcompany.com/... |
faq.yourcompany.com/... |
www.yourcompany.com/faq/... |
| Setup time | 0 min | 5 min | 15–60 min |
| Who does work | Rose | You add DNS CNAME | You configure CDN/server |
| TLS certificate | Rose | Rose (auto-provisioned) | Yours (existing) |
| SEO authority lands on | faq.userose.ai |
faq.yourcompany.com |
www.yourcompany.com |
| Brand in URL | Rose | You | You |
| Works on hosted CMS | Yes | Yes | Only with Cloudflare in front |
| Failure mode if misconfigured | n/a | DNS error | Proxy / origin error |
| Switch later | Yes | Yes | Yes |
Decision tree¶
Do you have DNS access to your domain?
├── No → Rose-hosted (default). Done.
└── Yes
│
└── Is your main www.yourcompany.com a significant SEO asset?
│
├── No, or just starting out
│ → Subdomain (CNAME). 5 min. Strong setup.
│
└── Yes — established domain with backlinks and rankings
│
└── Do you have CDN / web server / Vercel access?
│
├── No → Subdomain (CNAME) for now. Upgrade later.
│
└── Yes → Subdirectory (reverse proxy). Max SEO.
│
└── Which stack?
├── Vercel/Next.js → next.config.js rewrites
├── Cloudflare-proxied → Worker or Rules
├── Nginx → location block
├── Apache → mod_proxy
├── CloudFront → behavior + Function
├── WordPress (self-hosted) → .htaccess
└── Hosted CMS → Cloudflare in front + Worker
What Rose handles in every setup¶
Regardless of which option you pick:
- FAQ HTML generation and hosting
- JSON-LD
FAQPagestructured data sitemap.xmlandrobots.txt- IndexNow submission to Bing / ChatGPT / Yandex
- Canonical URL enforcement (one indexable URL per question)
- Assets (CSS/JS/fonts) with CORS-safe headers
- TLS provisioning for custom subdomains
- 301 redirects when you change setups (your link equity is preserved)
You never write canonical tags, sitemaps, robots files, or structured-data markup yourself.
URL routes (identical across all setups)¶
| Path | Serves |
|---|---|
/frequently-asked-questions |
FAQ page (HTML + JSON-LD) |
/sitemap.xml |
Sitemap with <lastmod> from latest pipeline run |
/robots.txt |
Crawler policy + sitemap pointer |
Switching setups later¶
Not a one-way door. Tell us when you change:
- Default → Subdomain: add CNAME.
- Subdomain → Subdirectory: configure proxy. We 301 the old subdomain URLs to the new subdirectory URLs.
- Subdirectory → Subdomain: remove proxy, keep CNAME.
- Anything → Default: remove your DNS / proxy config.
In every transition Rose issues 301 redirects so existing links, bookmarks, and Google index entries follow you.
Still unsure?¶
Email your Rose contact with these three answers and we'll recommend the setup:
- What CMS / stack hosts
www.yourcompany.com? - Who has access to your DNS provider?
- Has your main domain been live for >12 months with active SEO work?
If 1 = managed CMS without infra access, 3 = no → Subdomain. If 1 = Vercel/Cloudflare/Nginx/CloudFront, 3 = yes → Subdirectory. Everything else: depends on how much SEO upside you want to chase.
Next steps¶
- Subdomain setup: FAQ Pages on Your Subdomain
- Subdirectory setup: FAQ Pages on Your Main Domain (Subdirectory)