
Intercom is one of the most popular customer messaging and help center platforms. Their Help Center allows you to publish documentation, articles, and collections that customers can browse and search.
By default, your Intercom Help Center lives on a subdomain like yourcompany.intercom.help or on a custom subdomain you configure (e.g. help.yourcompany.com). However, many teams — especially small bootstrapped ones — prefer to host it on a subpath of their main domain (e.g. yourcompany.com/help) instead.
Why subpath matters for SEO and domain authority
When you use a subdomain (help.tarkle.com), search engines generally treat it as a separate site. Link equity and domain authority are not fully shared with your main domain.
When you use a subpath (tarkle.com/help), everything stays under your primary domain. This gives you:
- Stronger domain authority consolidation
- Better internal linking signals
- Potentially faster indexing and ranking for help-related content
| Aspect | Subdomain (help.tarkle.com) | Subpath (tarkle.com/help) | Winner for SEO |
|---|---|---|---|
| Domain Authority | Treated as separate domain | Shares authority with main domain | Subpath |
| Link Equity | Does not fully pass to root domain | Fully consolidated under root domain | Subpath |
| Setup Complexity | Easier (native Intercom support) | More technical (requires proxy or middleware) | Subdomain |
| Maintenance | Lower | Slightly higher | Subdomain |
| Branding & Trust | Separate brand | Feels like part of your main product | Subpath |
For small teams and bootstrapped companies that want to maximize every signal for SEO, subpath is almost always the better choice.
The problem with Intercom’s official guidance
Intercom does support custom subpaths. However, their documentation heavily focuses on AWS CloudFront and Cloudflare Workers. There is very little clear guidance for teams running on Vercel + Next.js.
We spent significant time trying to get this working cleanly. Most solutions either required running a full proxy in front of Vercel (which Vercel discourages) or gave incomplete instructions. After testing multiple approaches, we landed on a clean solution using Vercel Edge Middleware. Here’s the exact setup we used to make tarkle.com/help work.
Prerequisites
- A Vercel + Next.js project
- An active Intercom workspace with a published Help Center
- Basic familiarity with deploying to Vercel
Step 1: Configure Intercom custom domain

- Go to Intercom → Articles → Settings → Configure and style → Domains
- Under Custom Help Center domain, enter: yourdomain.com/help
- Select HTTPS (manual setup)
- Click Save and set live
Note: Make sure at least one article is published so the Help Center is not empty.
Step 2: Create Vercel Edge Middleware
This is the cleanest way to proxy requests from /help to Intercom without using an external proxy.
Create a file called middleware.ts in the root of your project:
1import { NextRequest, NextResponse } from 'next/server'
2
3const INTERCOM_ORIGIN = 'https://custom.intercom.help'
4
5export async function middleware(request: NextRequest) {
6 const { pathname, search } = request.nextUrl
7
8 if (!pathname.startsWith('/help')) {
9 return NextResponse.next()
10 }
11
12 const targetUrl = `${INTERCOM_ORIGIN}${pathname}${search}`
13
14 const proxyReq = new Request(targetUrl, {
15 method: request.method,
16 headers: request.headers,
17 body: request.body,
18 redirect: 'manual',
19 })
20
21 proxyReq.headers.set('Host', request.headers.get('host') || 'yourdomain.com')
22 proxyReq.headers.set('X-Forwarded-Host', request.headers.get('host') || 'yourdomain.com')
23 proxyReq.headers.set('X-Forwarded-Proto', 'https')
24
25 const cookies = request.headers.get('cookie')
26 if (cookies) {
27 proxyReq.headers.set('Cookie', cookies)
28 }
29
30 const response = await fetch(proxyReq)
31
32 return new NextResponse(response.body, {
33 status: response.status,
34 statusText: response.statusText,
35 headers: response.headers,
36 })
37}
38
39export const config = {
40 matcher: '/help/:path*',
41}Step 3: Deploy and test
- Commit and push the middleware.ts file.
- Wait for the deployment to complete on Vercel.
- Test the following URLs:
- https://yourdomain.com/help
- https://yourdomain.com/help/en
- https://yourdomain.com/help/en/articles/your-article-slug
If everything is configured correctly, your Intercom Help Center should load under your subpath.
Alternative: Cloudflare Worker
If you already use Cloudflare and prefer it, you can also achieve this with a Worker + route. However, for most Vercel teams, the Edge Middleware approach above is simpler and keeps everything inside Vercel.
Intercom supports subpaths, but the path to get there on Vercel was not well documented. We hope this guide helps other teams avoid the same trial and error.
Need help implementing this on your own Vercel project?
At Tarkle Studio, we help agencies and startups with technical implementations like this — including Intercom integration, custom domains, and clean subpath setups on Vercel.
If you're struggling to get your Intercom Help Center working nicely on your domain, feel free to reach out. We’re happy to help.
