calltree.ai is a single-page app on S3 and CloudFront. The Terms, Privacy and Events views exist only inside the homepage file. Opening calltree.ai/terms, /privacy or /events directly, with or without www, returns HTTP 404, and so do /sitemap.xml and /robots.txt. The homepage HTML has no <title> or meta description and shows unfilled placeholders such as {{ heroHeading }}. So a procurement team pasting the terms link into a vendor review gets an error page. A search engine finds one untitled page, and an AI assistant asked what Calltree does reads template code. For a company selling to enterprise contact centers, these checks come before the first demo.
First action
Set CloudFront to serve the app with a 200 status for /terms, /privacy and /events today, then check each link from a private window.
How to measure it
Readable, indexed pages
- Now
- –
- Target
- All public pages return 200 with their own title and description; homepage indexed for 'Calltree AI'
- By
- 30 days
Steps
Stop the 404s
CloudFront custom error response or a function that routes /terms, /privacy and /events to the app with a 200.
Engineering lead 2 hours
Prerender each page
Build a static HTML file per route with the real copy filled in, so no {{ }} placeholders reach readers.
Engineering lead 2 days
Write titles and descriptions
One title and one description per page, built around AI support reps for call centers and long troubleshooting calls.
CEO (co-founder) 2 hours
Add lang and canonicals
lang="en" on <html> and a self-canonical on each page.
Engineering lead 1 hour
Publish sitemap and robots
sitemap.xml with every page and event URL, robots.txt pointing to it; submit in Search Console.
Engineering lead 2 hours
Test as a reader
Fetch each URL without JavaScript and in a LinkedIn and Slack preview; confirm the text, title and status.
Engineering lead 1 hour
Watch indexing
Check Search Console coverage and branded search results weekly for a month.
CEO (co-founder) 4 weeks
Why it works
Give each page its own HTML file at its own URL, prerendered at build time with real text, a title, a meta description and a canonical tag: /, /terms, /privacy, /events and one URL per event. As a stopgap on day one, set CloudFront to answer missing paths with the app shell and a 200 status, so the links stop erroring. Then add a sitemap.xml and robots.txt and submit them in Search Console. Write the titles around what buyers search for, for example 'Calltree | AI support reps for technical troubleshooting calls'. Put the page language on <html>. Finally, check what a non-JavaScript reader sees on each page, because that is what link previews, many AI crawlers and security-review tools see.
Enterprise deals pass a vendor check before anyone books time: security and legal teams open the terms and privacy links, and buyers search the name or ask an AI assistant. A 404 or a blank title at that point reads as an unfinished company. Real, titled pages cost a few days of work, and every later idea in this plan depends on pages that can be found.
Ready to use
ChecklistReadable-site checklist
[ ] /terms, /privacy, /events return 200 (with and without www)
[ ] Each page is its own prerendered HTML file with real text
[ ] No {{ }} placeholders in the HTML served
[ ] Unique <title> and meta description per page
[ ] lang="en" on <html>, self-canonical on each page
[ ] sitemap.xml and robots.txt live and submitted
[ ] Unknown paths return a real 404 page with links home
[ ] Link previews checked in LinkedIn, Slack and emailRisks and how to handle them
The stopgap 200 rule also hides real missing pages
Keep it only until prerendered files exist, then return a true 404 for unknown paths.
Prerendering breaks the interactive demo
Prerender text and metadata only and let the app take over after load.
Evidence
- Your websiteLinks (checked twice, November 9, 2026): calltree.ai/terms, /privacy and /events, and their www versions, return HTTP 404 when opened directly, as do /sitemap.xml and /robots.txt. The Terms ("Last updated July 11, 2025"), Privacy Policy and Events views exist only inside the homepage file.Source
- Your websiteHomepage (November 9, 2026): the HTML readers receive has no <title> or meta description and shows unfilled placeholders such as "{{ heroHeading }}" and "{{ p.label }}"; tagline "Conversational AI for smarter customer support."; a demo chat with "Check backorder" and "Check warranty" and an analyst asking "What have our WiFi calls been about lately?"; no pricing, named customers, case studies or testimonials; contact is [email protected].Source
- PageSpeedMobile test (November 9, 2026): performance 67 (desktop 95); the main content, the heading "Meet your AI CX agent.", appears at 3.9s (target 2.5s); 11,315 KB in 56 requests, 3,061 KB of it images; 440 ms blocking time, PostHog (253 KB) and Google Tag Manager (177 KB) the heaviest scripts; SEO 82 (no title, no description); accessibility 85 (no page language, low contrast, no main landmark). Too little real-visitor traffic for Core Web Vitals field data.Source
- HiringAI Operations Analyst (San Francisco, $70K-$100K, new grads welcome, open on YC's job board): supervises "AI agents during live customer conversations", is the escalation point for frustrated customers, documents patterns in AI performance and tests new AI experiences; one weekend day a week. Calltree (YC W25, team of 14) has "multiple enterprise customers, including public retail brands" and its AI handles "30+ minute technical troubleshooting calls". Applicants record a 2-3 minute support roleplay video.Source