SermonWise — "Sermon generator" page family
Why
The 2026-10-06 search audit (ai-company-os/board/evidence/search-audit-churchwiseai-sermonwise-2026-10-06.md, section "Target keywords") found sermonwise.ai absent from Google's top ten for all ten head phrases ("sermon generator", "ai sermon generator", "sermon writer", ...), with five of them never served once in 90 days. The only page in the family is /sermon-outline-generator, titled for the narrower phrase. sermonwriterai.com holds page one on 8 of 10. John's target: position 1 for "sermon generator" and the popular variants, with one page per tradition that people actually search.
The hard rule: this must not become ITW or PewSearch
ITW had ~6,900 and PewSearch ~63,000 generated pages declined by Google ("crawled, currently not indexed") because they were near-identical templates with a noun swapped. The 417 existing SermonWise template/passage pages already sit in that risk zone (page-one positions, 1 to 21 impressions each). Therefore:
- Few pages, chosen by evidence. Build only phrases with demand proven in
knowledge/drafts/sermonwise-sermon-generator-keyword-map-2026-10-06.md(Google autocomplete + Search Console + live SERP). Ceiling 3 pages in this family (decided 2026-10-06; raising it needs a new keyword map showing demand). "Roman Catholic" ships only if the map shows it as separate demand from "Catholic"; otherwise it is a secondary phrase on the Catholic page. - Every page is substantively different. Minimum 900 words of tradition-specific prose that could not be moved to another tradition's page unchanged: that tradition's homiletic form (e.g. Catholic homily on the lectionary readings, 7 to 10 minutes; Baptist expository three-point with invitation; Pentecostal testimony-and-altar-call; Lutheran law-and-gospel; Anglican/Episcopal lectionary homily with the collect; Reformed redemptive-historical; Wesleyan holiness-and-grace; Orthodox festal homily), its vocabulary (from
products/chatbot/theology-vocabulary.mdandsrc/lib/tradition-mapping.ts), its calendar, who preaches and when, two worked example outlines in that form, and what the generator does differently for it. Shared boilerplate across the family is capped at 150 words (the "how it works" steps and the pricing line). A reviewer must be able to tell which tradition a page is for with the title removed. - A real tool on every page. The existing generator (the
/sermon-outline-generatorform,sermon-preview.tswith the tradition pre-selected and locked to that page's lens) renders above the fold. A page is not a landing page for a tool that is elsewhere. - No new combinatorial routes. No tradition × occasion, tradition × passage, or city variants. Exactly
/sermon-generator(hub) and/sermon-generator/<tradition>(one level). Nothing else in the family. - No pages for phrases with no demand, even if a tradition exists in the product. The keyword map's "skip" list is binding.
- E-E-A-T signals that are true: author byline (John Moelker, pastor 15 years, engineer 15 years) with a link to the about page; "Updated
" that only changes when the copy changes; a sample outline that was actually generated by the product (stored in the data file with the date); links to the two most relevant existing template pages and to /pricing. - Index hygiene: self-canonical sermonwise.ai URLs; in the sitemap with honest lastmod; in
llms.txt;noindexnever used as a crutch. The hub links every tradition page; every tradition page links the hub and two siblings.
Page list (DECIDED 2026-10-06 from the keyword map — supersedes the tradition-page idea)
The keyword map found ZERO demand for any tradition-qualified phrase (23 tested: no autocomplete in US/CA, no row in 16 months of GSC). Demand sits in nine head phrases that form THREE intents. Nine pages for three intents would be cannibalisation and the doorway pattern. Therefore the family is exactly three pages:
| Page | Owns these phrases (title, H1, first paragraph use the first; the rest appear naturally in H2s/body/FAQ) |
|---|---|
/sermon-generator | sermon generator, ai sermon generator, sermon ai, free sermon generator |
/homily-ai | homily ai, ai homily, homily generator, catholic homily ai (GSC position 9.7 today: the highest-leverage page; written for Catholic, Anglican, Lutheran and Orthodox preachers who say "homily") |
/sermon-writer | sermon writer, ai sermon writer (the full-manuscript angle: from outline to a preached draft in the preacher's voice, distinct from the outline tool) |
Traditions appear as sections with anchors inside /sermon-generator (Catholic, Protestant/Baptist, Pentecostal, Lutheran, Reformed, Wesleyan, Anglican, Orthodox: one paragraph each on how the generator adapts), NOT as separate pages. If a future keyword map shows real demand for a tradition phrase, that section can be promoted to a page under this spec's rules; never pre-emptively.
Routes
/sermon-generator: H1 "Sermon Generator", the generator with tradition selector above the fold, the tradition sections (anchored), 900+ words on what a sermon generator should and should not do (tool, not a substitute for prayer and study; the bridge principle in the pastor's own terms), FAQ./homily-aiand/sermon-writer: same shape (tool above the fold, 900+ words specific to that intent, two generated examples, FAQ). No/sermon-generator/<tradition>routes exist. All three served on sermonwise.ai via the existing/sermons/*host rewrite, like/sermon-outline-generator; canonical is the sermonwise.ai form.- Redirects: none removed.
/sermon-outline-generatorstays and links to the hub.
Data
src/lib/sermon-generator-pages.ts: one record per page { slug, phrase, title, h1, lens (tradition-mapping key), secondaryPhrases[], intro, form (the homiletic form prose), vocabulary, calendar, examples[2] (each a generated outline with generatedOn), differences (what the generator does for this tradition), faqs[≥5], templateLinks[2], updatedOn }. A unit test enforces: ≥ 900 words of page-specific prose per record; shared text ≤ 150 words; no two records share a sentence longer than 12 words; slug count ≤ 3; every lens exists in tradition-mapping.ts; every templateLink resolves to a real page.
Schema and metadata
SoftwareApplication (the generator, free tier, price 0 with the $19.95 Pro offer per sermon-pricing.ts, never a number the page does not charge), FAQPage from the same FAQ array, BreadcrumbList. Titles ≤ 60 chars with the exact phrase first. One <h1>.
Acceptance checks (deployed, sermonwise.ai)
/sermon-generator,/homily-aiand/sermon-writerreturn 200, exact phrase in title, H1 and first paragraph; the generator form renders server-side above the fold (on/homily-aiwith the Catholic lens pre-selected).- Word-count test and the "no shared sentence" test pass in CI; a reviewer reads two random tradition pages with the titles hidden and names the tradition of each.
- JSON-LD parses; FAQPage Question count equals the visible FAQ count.
- Sitemap lists the hub and every tradition page with lastmod equal to each record's
updatedOn;llms.txtlists the hub. - Playwright on the deployed URL: open
/homily-ai, enter a passage, submit, assert an outline renders (free tier) and the tradition label on the result says Catholic. - Search Console, 14 and 28 days after deploy: each page shows ≥ 1 impression for its exact phrase (the "served at all" bar the audit found missing); "Crawled, currently not indexed" count for the family must be 0 at 28 days or the family is paused and reviewed, not extended.
- Lighthouse mobile performance ≥ 70, accessibility ≥ 95 on the hub and one tradition page.
Out of scope
Changing the generator's behaviour or prompts; any tradition × occasion pages; paid ads; the 417 existing template/passage pages (separate review: whether to consolidate them).