TYPO3 v14: Restrict content elements per column - finally with on-board tools
Have the article read aloud.
Finally in the core: You can now define directly in the backend layout which content element types are allowed in which column. Proven content_defender functionality without extension.
Sometimes it's the integration of proven community solutions into the core that really pushes TYPO3 forward. This is exactly what has happened with version 14.1: Content element restrictions per backend layout column are now natively on board.
Anyone who has ever worked with the extension content_defender by Nicole Hummel knows the concept. For those who haven't, here's the short version: you can now specify directly in the backend layout which content element types are allowed or prohibited in which column. Without an extension, without a workaround, simply via page TSConfig.
And I think that's extremely cool.
What the feature actually does
Backend layouts get two new configuration options per column:
- allowedContentTypes - Whitelist: Only these types are allowed
- disallowedContentTypes - Blacklist: All except these types are allowed
This has a direct effect in the backend:
- The New Content Element Wizard now only shows the permitted types
- In the content element editor, the "Type" and "Column position" fields are limited to valid values
- Invalid combinations are prevented when moving and copying
The system therefore takes effect at all relevant points - no detours, no gaps.
A practical example
Imagine a classic layout: Main content area, sidebar and footer. No headings should be allowed in the footer and only special call-to-action elements in the sidebar.
You can now configure this directly in the backend layout:
mod.web_layout.BackendLayouts {
exampleKey {
title = example layout
config {
backend_layout {
colCount = 2
rowCount = 2
rows {
1 {
columns {
1 {
identifier = main
name = Main Content
colPos = 0
allowedContentTypes = header, text, textmedia
}
2 {
identifier = sidebar
name = sidebar
colPos = 1
allowedContentTypes = my_custom_cta
}
}
}
2 {
columns {
1 {
identifier = footer
name = Footer
colPos = 2
colspan = 2
disallowedContentTypes = header
}
}
}
}
}
}
}
}
What happens here:
- Main Content (colPos 0): Only header, text and text media allowed
- Sidebar (colPos 1): Only the custom CTA element is allowed
- Footer (colPos 2): Everything allowed except header elements
This is not only technically clean, but also editorially helpful. Editors cannot select the wrong element types in the first place.
Compatibility with content_defender
The core team has deliberately taken existing projects into consideration. The syntax of the content_defender extension is supported:
allowed {
CType = header, textmedia
}
This syntax is mapped internally to allowedContentTypes. If both variants are used at the same time, allowedContentTypes wins.
What the core does NOT do:
The maxitems feature (maximum number of elements per column) does not exist in the core. If you need this, you can continue to use content_defender - both systems coexist without any problems.
Why this is so important
Quality control in the content area is often underestimated. Many projects suffer from the fact that although editors are well trained, they still use the wrong element types in the wrong places in their daily work.
Previously, you needed an extension for this. Now it is part of the system.
This means
- Fewer dependencies - one less extension to maintain
- Stable core support - the feature is developed further with TYPO3
- Easier onboarding - no extension documentation required, everything in the official ChangeLog
For projects that were previously unfamiliar with content_defender, this is a real upgrade. For projects that already use it, it is a perspective for the future.
What extension developers should know
There is a new PSR-14 event for extensions such as b13/container:
ManipulateBackendLayoutColPosConfigurationForPageEvent
This allows extensions to adjust the calculated column configuration. However, the event is marked as @internal - "use at your own risk". It will probably be revised in future TYPO3 versions, but for v14 it was necessary for extensions like ext:container to remain functional.
If you are developing extensions that manipulate backend layout columns, you should be aware of the event. But be aware: The API may change.
Current status and availability
The feature is available as of TYPO3 14.1. TYPO3 14 is currently still under development, the LTS version will be released at the end of April 2026.
Important: Database-based backend layouts do not yet support the configuration. According to the ChangeLog, this will be added later. It currently only works with page TSConfig-based backend layouts.
Why I think this is so cool
This is not a spectacular marketing feature. No new UI, no AI hype, no revolution. But that's exactly what makes it so valuable.
It's a proven community solution that has migrated to the core. This shows that TYPO3 is listening and setting the right priorities. For years, content_defender was one of the most used extensions in the area of content quality. Now the core functionality is included as standard.
This makes TYPO3 14 a bit more robust, easier to maintain and more user-friendly. Without you as an integrator having to change anything - except perhaps install one less extension.
How to stay tuned
TYPO3 v14 continues to evolve, and I continue to filter the relevant features from the ChangeLog. If you want to receive such updates directly, subscribe to my TYPO3 newsletter. There you will get the most important developments in a compact format - without noise, only what is really relevant.
And if you want to learn TYPO3 14 from scratch: I'm currently working on the TYPO3 Complete Course, which will be updated with every new version. Content Element Restrictions, Site Sets, Fluid 5 and everything else that v14 brings. Join the waiting list to secure the discounted introductory price.
BackComments under articles are disabled. If you have a question or addition, please send me an e-mail.
Who writes here?
Hi, I'm Wolfgang.
Since 2006, I've been diving deep into the fascinating world of TYPO3 - it's not only my profession, but also my passion. My path has taken me through countless projects, and I have created hundreds of professional video tutorials focusing on TYPO3 and its extensions. I love unraveling complex topics and turning them into easy-to-understand concepts, which is also reflected in my trainings and seminars.
As an active member of the TYPO3 Education Committee, I am committed to keeping the TYPO3 CMS Certified Integrator exam questions up to date and challenging.
But my passion doesn't end at the screen. When I'm not diving into the depths of TYPO3, you'll often find me on my bike, exploring the scenic trails around Lake Constance. These outdoor excursions are my perfect balance - they keep my mind fresh and always provide me with new ideas.