Content Modelling for SEO and AI: Structuring Content in a Headless CMS

Why storing content as structured fields instead of one rich text block makes structured data automatic, facts consistent and content reusable by chatbots, with an example model for a service business.

Content modelling means storing content as structured fields, such as price, duration, author, questions and answers, instead of one large block of rich text. A good content model makes structured data automatic, keeps facts consistent across pages, lets the same content feed a website, an app and a chatbot, and gives AI systems clean, labelled information to work with. It is the foundation for SEO and AI work in a headless CMS, and it works just as well in WordPress with custom fields.

Rich text versus structured fields

One rich text field Structured fields
Price changes Edit every page that mentions it Change one field; every page updates
Structured data Written by hand, drifts from content Generated from fields
Reuse in apps, chatbots, feeds Hard; must parse HTML Easy; fields are already separate
Consistency across pages Depends on editors Enforced by the model

A model for a service business

Content type Key fields
Service Name, one-sentence summary, who it is for, deliverables (list), process steps (list), duration, price range, FAQ items (references), related guides (references)
FAQ item Question, answer, related service or topic
Person Name, role, bio, photo, profile links, credentials
Location Name, address fields, phone, hours, services available
Case study Client type, industry, problem, actions, results (metric, value, period), quote, related service
Article Title, summary, key points, body, author (reference), sources (list), published and content-updated dates

References between types, such as a service linked to its FAQ items and case studies, let the site build pages and internal links automatically.

What it enables for SEO and AI

  • Structured data generated from fields; see automating structured data.
  • Answer-first pages: a required summary field puts the direct answer at the top of every page.
  • Consistent facts: one price, one address, one description, used everywhere.
  • Clean input for chatbots and search: labelled fields are better passages than parsed HTML. See RAG chatbots.
  • Accurate dateModified from a content-updated field that editors set when content really changes.

In practice

  • Headless CMSs such as Sanity, Strapi and Contentful are built around content types and fields.
  • In WordPress, custom post types and custom fields (for example with Advanced Custom Fields) do the same. This site stores each article’s key points, SEO title, description and excerpt as separate fields, which feed the summary box at the top of each article, the meta tags, the structured data and the llms.txt file.
  • Laravel and other frameworks model content as database tables with the same principles.

How to design a model

  1. List the page types you have and the questions each must answer.
  2. Turn every repeated fact into a field: prices, durations, addresses, credentials.
  3. Keep one rich text field for the narrative body, but not for facts that appear elsewhere.
  4. Define references between types instead of copying content.
  5. Make the fields that matter for search and AI required: summary, author, dates.
  6. Test with real content before migrating everything.

Frequently asked questions

Is this worth it for a small site?

A light version is: fields for summary, price, author and dates cover most of the benefit without a heavy setup.

Does content modelling make pages less flexible for editors?

It adds structure to facts, while the body field keeps freedom for the narrative. Most editors find it easier once facts no longer need to be updated in many places.

Can AI help design a content model?

It can suggest fields from sample pages. Review them with editors and developers, since the model shapes how content is created for years.

Sources

  1. Google Search Central, “General structured data guidelines”
  2. Documentation for Sanity, Strapi, Contentful and Advanced Custom Fields (content types and fields)