We use cookies to make your viewing experience better. By accepting you consent, you agree to our Cookie policy

Improve your Craft CMS skills

Craft CMS Channel Vs Structure - What's The Difference?

10 min read
Craft CMS Channel Vs Structure

Confused about Channels vs Structures in Craft CMS? This guide will clearly explain the distinct roles of Channels for organizing content vs Structures for flexible content modelling. Learn how Channels and Structures complement each other to create robust, customizable content architectures. Expect actionable best practices to help optimize your use of Channels and Structures in Craft CMS for structured yet flexible content management.

Channels categorize and organize content into siloed buckets for display in templates. Structures enable flexible, customizable content modelling with reusable field layouts that can be mixed and matched across channels. Channels focus on front-end presentation while structures allow back-end editing flexibility. Together they provide robust yet modular content architectures.

Understanding Channels in Craft CMS

Categorizing Content

Channels are one of the key concepts in Craft CMS that allow you to categorize and organize your content. At its core, a channel represents a content type or taxonomy.

For example, you may have a Blog channel for your blog posts, a News channel for your press releases, and a Products channel for your product catalogue. Channels allow you to separate these different content types from each other.

When you create an entry in Craft, you select which channel it belongs to. The channel essentially defines what type of content that entry is.

This makes managing and displaying content much easier compared to having all your entries mixed together. With channels, you can view and work with related content types as a group.

Some common uses of channels include:

  • Blog - For blog posts and articles

  • News - Press releases or company announcements

  • Products - Product catalogues and listings

  • Docs - Documentation or help articles

  • Videos - For hosting video content

  • Podcasts - For audio content

  • Jobs - Postings for open positions

  • Locations - Details on offices or stores

The key is that channels let you categorize your content into logical types and silos, avoiding a messy single pile of content entries.

Routing and Display

Channels not only categorize content, but they also control how their content is displayed and routed in the front-end templates.

For example, your News channel might be displayed on a News page template that loops through all the latest press releases. The Products channel could be displayed on a Products page that lists all your product catalogue entries.

So channels define both the content type and its presentation. The connection between channels and templates gives the front-end its structure. Channels supply the content, and templates consume and output it.

Most channels will have a single template defined for presenting that channel's content. For example, the Blog index page that lists blog posts likely only wants to show entries from the Blog channel.

However, you can also reuse content across multiple templates if needed. For example, pulling quotes into a sidebar widget from the Quotes channel. So channels provide flexibility in displaying content while still separating concerns.

Global and Localized

Craft CMS supports both global and localized channels. Global channels contain entries that are available across all sites and languages. Localized channels are specific to one language/site.

For example, your main Blog channel could be global to share blog posts across all sites. But your News channel could be localized so each country site can post region-specific press releases.

Localized channels get a site suffix in Craft, like News_uk for UK news and News_fr for French news. This keeps each site's content separate while still using the same overall channel structure.

So the same channel template can work across sites, simply switching the localized channel it pulls from based on the current site. Channels give you control over sharing content globally vs. tailoring content locally.

Channels are a powerful concept in Craft CMS that allows you to categorize, manage, and output content efficiently. Channels provide structure for organizing content into logical silos, controlling how that content displays, and supporting both global and localized content needs. With channels, you can build robust content models tailored to your unique requirements.

Understanding Structures in Craft CMS

Content Modeling

Structures are one of the most powerful features in Craft CMS for flexible content modelling. While channels categorize content, structures define the actual content models with specific fields, attributes, and schemas.

Structures allow you to create custom field layouts to model any type of content you need. For example, you could have a structure for blog posts, products, events, characters, and more.

Each structure gets its own field configuration to capture the data required for that content type. Blog posts may need body text and author fields. Products need pricing, descriptions, and related images. You build the field schema for each structure accordingly.

Structures move beyond predefined generic content types to completely custom models tailored to your content needs. And since they are field-based, you can update structures over time as requirements evolve just by adding, removing or changing fields.

So structures provide the foundation for modelling flexible content in Craft CMS. They allow both developers and content editors to define the types of content they need down to the field level.

Reusable and Modular

A key advantage of structures is reusability. Once you create a structure, it becomes a modular, reusable content model.

For example, you may have a Blog Post structure defined for your blog channel’s entries. But then you realise you also want to display blog post snippets in sidebars, manuals, and other locations.

Instead of duplicating the model, you can reuse the Blog Post structure anywhere that content is needed. The same structure can power multiple content types across channels, templates, and plugins.

You can mix and match structures as needed without repetition. Display a Product structure on the product page, reuse it in a sidebar promo, and again in a custom catalogue. The modular structure system keeps things DRY (Don’t Repeat Yourself).

Structures also allow swapping content models when needs change. For example, you may realise a certain channel should use an Event structure rather than a Blog Post structure. Just change the entry type and the content model updates.

So structures promote modular, reusable content models for efficiency and consistency. They provide a toolkit of interchangeable content blocks to assemble flexible content schemas.

Context-Based Behavior

Structures give content models context-based behaviour through configuration rules and settings. You can control where and how structures are made available for use.

For example, you may want a structure to only be selectable for entries in certain channels or sections. Or only allow a structure for users with certain permissions.

You can also set structures to only be usable in specific locales, enable versioning, add validation rules, and more based on the content model needs.

This context-based configuration ensures structures maintain the right behaviour in different scenarios. The rules adapt the structure logic based on the current content requirements.

So a Product structure may work one way globally but get adapted when used as a localized variant. Or a content model could function differently in a front-end request vs. a control panel request based on context.

Overall, structures in Craft CMS enable powerful and flexible content modelling capabilities. Reusable modular structures, customized fields, and context-based configurations provide tools for modelling complex content schemes for any project need. Structures are a key ingredient enabling dynamic content in Craft.

Differences Between Channels and Structures

Content Storage vs Modelling

A key difference between channels and structures is that channels are for content storage while structures are for content modeling.

Channels in Craft CMS hold the actual content entries and categorize them into content types. For example, a Blog channel contains all the blog post entries. A News channel contains press release entries.

Structures on the other hand define the field models and schemas for the content. For example, you may have a Blog Post structure that models the title, body, author, tags, etc. for a blog entry.

So channels store and organize the content itself, while structures enable modelling the structure of that content with customized fields and attributes.

Structures are reusable templates that model what the content in each channel looks like. Channel entries use structures to take on specific shapes and capture customized data.

So in summary, channels store the content and structures store the field models for the content types stored in those channels. The division of responsibilities provides a separation of concerns.

Display vs Flexibility

Another difference is that channels mainly control front-end display, while structures focus on back-end content flexibility.

Channels define how their content entries get displayed in templates, providing the routing and presentation logic. Templates connect to channels when outputting content to the front-end.

Structures on the other hand enable back-end editing flexibility. They allow for customized field layouts to model content however you need. Structures focus on empowering content creators with flexible editable models.

So channels handle the display, while structures handle the customizable modelling. Channels focus on presentation, and structures on flexibility.

This separation makes structures highly reusable across channels and templates. Since structures just define field models, they can be utilized wherever needed without dictating display logic.

Global vs Modular

Channels tend to be more global, while structures are designed as modular components.

Channels represent unified content buckets that apply across a site or network. For example, a global Blog channel contains all blog posts. Localized channels like News_gb for UK news do exist.

Structures however are designed as modular, customizable blocks of content modeling that can be mixed and matched. Structures are context-aware building blocks that adapt their behaviour based on where they are used.

So structures promote modular content flexibility, while channels focus on global content organization. Structures provide reusable customizable toolkits, channels create content silos.

Channels and structures have complementary roles in Craft CMS. Channels store and organize content, structures enable flexible modelling. Together they provide a robust content framework with separation of concerns.

When to Use Channels vs Structures

Simple Content Types

What are channels in Craft CMS? Channels work well for basic, standalone content types like blogs, news, and products.

If you have a straightforward content bucket that doesn't require a lot of complex additional fields or configuration, a channel is a good fit.

For example, a Blog channel makes sense for simply storing your blog post content. A News channel for press releases. A Product channel for your product catalogue.

These are siloed content types that don't have highly complex schemas. You don't need dozens of custom fields or special configurations.

Channels provide a clean solution for these simple, self-contained content types. You can group the related content and display it using dedicated templates for each channel.

So channels shine for basic content types that function independently and don't require a lot of customization. Keep it simple with channels.

Complex Configuration

For content types requiring more complex field layouts, advanced configuration, and customization, structures are more appropriate.

Structures allow you to model content types like events, listings, recipes, real estate, and more that have intricate schema needs.

For example, an Event structure would need fields for dates, times, location, speakers, agenda, tickets, and more. This requires a flexible structure with many custom fields and relations.

Structures also allow extensive configuration like rules, versioning, validation, and more that channels don't offer. Complex content types benefit from this advanced modelling functionality.

So for highly configurable, customizable content with unique schemas, structures provide the flexibility needed. Channels would be too limiting.

Public vs Reusable

As a general guideline, channels tend to be used for public-facing content, while structures are ideal for reusable content models.

Channels organize content that will actually be displayed somewhere like blog posts and news articles. This content is meant for visitors consuming it on the front-end.

Structures on the other hand are reusable templates for modeling content. They can be used across many channels and templates as needed. Structures enable content reusability.

For example, you may have a Blog Post structure used by an entry in the Blog channel. But you can reuse that structure for related entries, promotions, excerpts, etc. across the site.

So channels hold content specifically for public use, while structures provide reusable content modelling capabilities across content types.

Weigh channels vs structures based on the content type complexity, configuration needs, and reusability requirements. For simple standalone content, channels will do. For advanced custom models, utilize modular and reusable structures.

Channel Use Cases and Examples

Website Sections

Channels commonly get used for top-level website sections like blogs, news, events, and products.

For example, having a Blog channel contains all your blog posts in one place. A News channel for press releases. An Events channel for upcoming events. A Product channel for your product catalogue.

These website section examples showcase channels being used for siloed, self-contained content types that warrant their own dedicated area on the site.

Each section likely has its own templates for targeting that channel - a blog index, individual post, events listing, product details page, etc. So channels keep these sections' content and display separated.

Websites will often utilize channels to architect the main content buckets that form the core sections. Then templates and navigation are built around surfacing that channeled content.

Content Catalogues

Channels also work well for content catalogues like podcast episodes, videos, recipes, and classified listings.

For example, you could have a Podcasts channel that contains each podcast episode entry. A Videos channel with individual video entries.

A Recipes channel that stores each recipe. And a Classifieds channel with separate entries for each listing like job postings, real estate listings, etc.

This helps organize sizable content catalogues into digestible segments vs one massive list of entries. Visitors can browse and search within a specific content catalogue channel.

Again channels allow siloing related content into its own section with tailored display templates rather than mixed together.

Taxonomies and Classifications

Channels can also enable taxonomies and classifications for organizing content into logical groupings.

Some examples include:

  • Genres: Song genres, book genres, movie genres

  • Categories: Blog categories, product categories, support doc categories

  • Tags: Article tags, user interest tags, metadata keywords

  • Brands: Company brand channels, partner brand channels

  • Locations: Country/region channels, city/office channels

Taxonomies help classify content into meaningful buckets that share common attributes. Website navigation can then surface content by its channel taxonomy.

Channels provide a clean way to structure these taxonomies compared to freeform tags or categories that can become chaotic. Taxonomy channels add order to content classification.

Channels lend themselves well to core website sections, content catalogues, and content taxonomies. Channels create orderly content segmentation which templates can then target and display.

Structure Use Cases and Examples

Directory Listings

Structures work well for directory-style listings like staff profiles, real estate properties, job openings, and restaurant menus.

These types of listings require structured data with fields that are often specific to that content type.

For example, employee profiles may need fields for name, title, photo, bio, department, location, and contact info.

Real estate listings need addresses, prices, images, descriptions, bedrooms, bathrooms, sizes, amenities, etc.

Job openings require a position title, department, description, responsibilities, qualifications, salary, etc.

And restaurant menus need sections for appetizers, mains, and desserts, with each menu item having a name, description, price, etc.

Structures allow modelling of the unique schemas needed for each listing type. The field layout can be customized exactly for staff, real estate, jobs, menus, etc.

Events and Bookings

For advanced events and bookings, structures provide the flexibility required.

Event structures can incorporate dates, times, locations, speakers, sessions, tickets, registration and more. All are highly configurable.

Booking structures like spaces, beds, or tables can have schemas for availability calendars, pricing rates, images, amenities, and custom booking settings.

Course and class structures can model schedules, lessons, materials, prerequisites, and enrollment options.

Concert and show listing structures can handle details like dates, venues, performers, ticketing, packages and seating.

The customizable nature of structures accommodates the unique needs of events, bookings, courses, and other scheduled activities.

Products and Inventory

Modelling products, parts, recipes, and other catalog entities also benefit from modular structures.

Product structures allow matrices to capture all variations in colours, sizes, materials, etc. Customizable pricing, SKUs, inventory, and attributes.

Part structures can model unique details like specifications, certifications, subcomponents, replacements, and other technical data.

Recipe structures allow full modelling of ingredients, instructions, cook times, images, ratings, and various categories and cuisines with unlimited custom fields.

So any catalog of entities with unique schemas and variations is suited for flexible structures.

Overall, structures allow deep custom content modelling for directory listings, events, bookings, products, recipes, and more. When you need configurable models, utilize reusable structures.

Complementary Uses of Channels and Structures

Structured Channel Content

Channels and structures work together by associating relevant structures to provide customized models for channel content.

For example, you may have a Blog channel that utilizes a Blog Post structure to give entries titles, body content, authors, tags, categories, etc.

An Events channel would link to an Event structure that incorporates custom fields for dates, locations, images, registration, speakers, and so on.

A Products channel connects with a Product structure that models pricing, descriptions, inventory, variations, and attributes.

So the channels provide overall content segmentation and organization, while associated structures create the customizable schemas tailored to that channel's content needs.

Channels store the content, structures define the content - they are paired for optimal flexibility.

Contextualized Structures

Associating structures with specific channels also provides context for those structures based on how that channel’s content gets displayed and used.

For example, a Blog Post structure may get reused across the Blog channel, a Related Posts widget, a Seminar Announcements channel, and more.

But within the Blog channel specifically, you know that structure models the core blog content. The context shapes the structure.

An Event structure could get used directly in the Events channel as well as for sidebar promos, related events modules, newsletter event listings, etc.

So channel integration gives context as to the primary purpose of that structure. The same structure can adapt across many channels while maintaining a core role.

Mixing and Matching

A powerful strength of Craft's modular approach is the ability to reuse structures across multiple channels for flexibility.

For example, you may realize a Product structure initially created for the Products channel could also work great to represent product content in blog posts, articles, user profiles, and more.

Rather than duplicating the model, you can reference the core Product structure from any channel that needs to capture or display product content.

This mixing and matching of structures across channels provides consistency while allowing tailored models. You get efficiency through reuse but with the flexibility to adapt structures as needed.

So complementing channels and structures allows segmented content while still promoting structured flexibility across channels. Together, channels and structures provide the core of Craft's content modelling capabilities.

Content Modeling Best Practices

Audit Content Types

When planning content structures in Craft CMS, it's important to first audit what types of content you need to model and how they relate.

Catalog all of the content entities, their attributes, and requirements. Identify the relationships between content types.

For example, you may need:

  • Blog Post: Title, body, author, tags, categories

  • Events: Dates, location, image, registration, agenda

  • Products: Title, description, price, variants, inventory

  • FAQs: Question, answer, categories

Also, factor in relationships like:

  • Blog posts reference authors

  • Events display related blog posts

  • Products have many product variants

  • FAQs belong to categories

This content audit helps plan optimal structures. You can design custom fields and schemas tailored to each content type from the ground up rather than retrofitting.

Optimize Reusability

When modelling structures, optimize for maximum reusability across channels and templates.

Keep structures simple and consistent so they can adapt flexibly. Don't over-customize for one specific use case.

For example, a generic Product structure could work across many channels and templates vs. a highly specific Store Product structure.

Reusable structures have clear, descriptive names like Blog Post, Event, Product, FAQ, etc. They should provide clean schemas without lots of one-off fields.

Consistency and simplicity allow structures to be mixed and matched seamlessly. Optimize structures for reuse and they will pay dividends.

Balance Flexibility and Complexity

Well-designed structures strike the right balance between flexibility and unnecessary complexity.

It's important to build robust, customizable structures to empower content creators. But beware of over-engineering or overthinking schemas.

For example, you may not need both a Product Category structure and a Product Tag structure for organizing products. Stick with one taxonomy structure for simplicity.

Review structures to identify and consolidate areas of redundancy. Remove fields that are rarely used or don't pull their weight.

Find the right balance between modelling content's needs and keeping schemas clean. Moderate complexity will ensure sustainable structures.

In summary, plan content models in Craft CMS by auditing content types, optimizing reusable structures through simplicity, and aiming for balanced flexibility. Keeping content structures focused and streamlined will provide the best durability and user experience over time.

Shape April 2022 HR 202
Andy Golpys
- Author

Andy has scaled multiple businesses and is a big believer in Craft CMS as a tool that benefits both Designer, Developer and Client. 

Show us some love
Email Us
We usually reply within 72 hours
Agency Directory
Submit your agency
Affiliate Partners
Let's chat