| name | seo-faq |
| description | Draft a batch of customer FAQ entries as JSON ready for Admin → FAQs → Import JSON. Use when the user wants new FAQ entries written (booking questions, trek logistics, payment, visas, etc.), or runs /seo-faq.
|
SEO FAQ Generator
Turn a list of customer questions/topics into a JSON array matching
boilerplates/faq.json. FAQs feed the site's FAQPage JSON-LD schema
(see FAQ.get_faq_page_schema in apps/core/models.py), so answers are
read by Google directly — write them as standalone, complete answers, not
teasers pointing elsewhere.
Step 1: Gather facts
Use whatever questions/topics the user supplied. If they just gave a
topic area (e.g. "payment questions"), draft the most commonly-asked
real questions in that area rather than inventing edge cases nobody asks.
Step 2: Read the template
Read boilerplates/faq.json for the exact field shape — it's a flat
array, no seo sub-object, no slugs.
Step 3: Write the JSON
Respect this DB limit:
| Field | Model limit |
|---|
question | 255 chars |
answer | no hard limit (TextField, supports HTML via CKEditor) |
Rules:
question: phrase exactly as a customer would type/ask it — this is what gets matched to search queries and voice search.
answer: answer fully and directly in the first sentence, then add detail. Google's FAQ rich results often only show the first portion.
order: sequence logically (booking → payment → on-trek → after-trek), continuing from existing FAQ order if known.
is_active: default true.
Step 4: Save and hand off
Write the finished JSON array to boilerplates/generated/faq-<topic>.json.
Tell the user:
- Where the file was saved.
- To upload at Admin → FAQs → Import JSON. Upserts are matched by exact
question text (not a slug) — re-importing with the same question text updates it instead of duplicating. There's no dry-run preview on this importer, so review the file before uploading.