How to Use Modules to Display Content in Joomla 6 (Step-by-Step Guide)
⚡ Quick Answer
In Joomla 6, go to Extensions → Modules → New, pick a content-display module type (Articles - Category Blog, Custom HTML, Menu, etc.), set its Position and Menu Assignment, then publish. The module renders anywhere that position is defined in your active template — sidebar, header, footer, or inline inside an article via {loadposition}.
| What you'll need | Details |
|---|---|
| Joomla version | 6.0.0 or later (this guide covers 6.0–6.1) |
| Server | PHP 8.3.0+ (Joomla 6's minimum requirement) |
| Access level | Super User or Manager, with access to Extensions and Content |
| Template used in examples | Cassiopeia (Joomla's default template) |
| Content ready | At least one published category and article, if you plan to display articles via a module |
Modules are how you put content around your articles — a category feed in the sidebar, a menu across the top, a related-articles block under a post. This guide walks through the Module Manager in Joomla 6, the module types built for displaying content, and how to get a module to actually show up where you expect it. Steps and screen paths below match the standard Joomla 6 administrator, using Cassiopeia's position names as the working example.
Step 1: Understand Modules vs. Positions vs. Components
Before touching the backend, it helps to separate three things Joomla users often blur together:
- Component — controls the main content area of a page (e.g. the article/category view from com_content). Only one component renders per page.
- Module — a smaller, reusable content block: a menu, a search box, a list of latest articles, a block of custom HTML. Many modules can appear on one page.
- Position — a named placeholder defined by the template, not the module. A module is only visible if it's assigned to a position that exists in the template currently active on that page.
Why this matters
A module set to a position your template doesn't define will never appear on the frontend — Joomla won't show an error, it will just silently not render. This is the single most common reason a "correctly configured" module seems broken.
Step 2: Open the Module Manager and Start a New Module
Go to Content → Site Modules (or Extensions → Modules, depending on your admin menu layout) and click New in the top-right corner. Joomla opens a list of available module types — this list includes both core modules and any installed from third-party extensions.
Step 3: Pick the Right Module Type for the Content You Want to Show
Joomla 6 ships with several core module types built specifically to surface article content without any custom coding. The most relevant ones for content display:
| Module type | What it displays |
|---|---|
| Articles - Category Blog | Multiple articles from one or more categories, blog-style with intro text and images |
| Articles - Category List | A titles-only list of articles from a category — good for compact sidebars |
| Articles - Newsflash | A rotating or stacked snippet of recent articles, often used above the fold |
| Articles - Related Articles | Articles sharing tags/category with the one currently being viewed |
| Articles - Most Read | Ranked list based on the article hit counter |
| Articles - Archived | A list of archived articles, grouped by month |
| Custom (Custom HTML) | Free-form HTML/text you write yourself — banners, CTAs, embedded widgets |
| Menu | A navigation menu you've built under Content → Site Menus |
| Breadcrumbs | The auto-generated path (Home > Category > Article) for the current page |
Select the type that matches your goal — for example, Articles - Category Blog to turn a category into a mini blog feed in a sidebar or homepage block.
Step 4: Configure the Module's Content Options
After choosing a type, give the module a clear internal Title (this is what shows above the content on the frontend, unless you hide it — see below). Then work through the module-specific tabs:
- Basic Options — for Articles modules, choose the source category (or categories), how many articles to show, ordering (newest first, most read, etc.), and which fields to display (intro image, author, date, hits).
- Show/Hide Title — under Advanced Options, set Show Title to No if you want the content to blend into the layout without a heading.
- Module Tag / Layout — advanced fields that control the wrapping HTML tag and, on Cassiopeia, whether the module renders inside the template's "card" chrome.
⚠️ Common mix-up
Don't confuse a Custom Fields display (which lives inside an article's own layout) with a module. Custom Fields render as part of the article itself; modules render in a separate template position, independent of any single article.
Step 5: Assign a Position
Still in the Module tab, click Select Position to open the position picker, or type a position name directly if you already know it. If you're using Cassiopeia, the commonly used content-display positions are:
| Position | Typical use |
|---|---|
| sidebar-left / sidebar-right | Vertical stack next to the main content — menus, category lists, related articles |
| top-a / top-b | Cards above the main content, full page width |
| bottom-a / bottom-b | Cards below the main content — related articles, CTAs |
| main-top / main-bottom | Directly above or below the component output, inside the main column |
| banner | Full-width strip below the header, above the top cards |
| footer | Site-wide footer content |
Not sure which positions your active template offers, or where they physically sit on the page? Go to System → Templates → Site Templates, open your template's Options, and enable Preview Module Positions. Reloading the frontend then overlays labeled outlines on every available position.
Step 6: Set Menu Assignment (Choose Which Pages Show the Module)
Switch to the Menu Assignment tab. This controls which pages the module appears on, independent of its position:
- On all pages — shows everywhere the position exists (good for menus, footers).
- On all pages except those selected — a blocklist approach.
- Only on the pages selected — an allowlist; check the exact menu items where the module should show.
- Regular Expression matching — for advanced URL-pattern targeting.
⚠️ This is where most "invisible module" tickets come from
A module can be Published, in the right Position, and still not appear — because Menu Assignment excludes the page you're viewing. Always double-check this tab before assuming the module itself is broken.
Step 7: Order Multiple Modules in the Same Position
You can publish as many modules as you like into one position — they stack in the order shown in the Module Manager. To reorder:
- Go to Content → Site Modules.
- Use the Position filter to show only modules in that one position.
- Sort by the Ordering column, then drag rows into the sequence you want.
The backend order is exactly the frontend display order for that position.
Step 8: Save, Publish, and Preview
Set Status to Published, confirm the Access level matches who should see it (Public, unless it's meant for logged-in users only), and click Save & Close. Reload the relevant frontend page — using a private/incognito window avoids any admin-session caching confusion — and confirm the content appears where expected.
🧯 Common Mistakes to Avoid
- Assigning a position that doesn't exist in the active template. Positions are template-specific; a name copied from a tutorial for a different template may simply not exist in yours. Always verify with Preview Module Positions first.
- Forgetting Menu Assignment defaults to "no pages" in some Joomla flows. A newly created module can silently show nowhere until you explicitly pick a Menu Assignment option.
- Leaving Status as Unpublished after testing. It's easy to build and preview a module in the backend and forget to flip it live.
- Switching templates without re-checking module positions. Since positions belong to the template, changing templates can silently orphan modules that were assigned to positions the new template doesn't define.
- Stacking too many modules in one position. Technically unlimited, but every module still adds a database query and render pass — a sidebar with a dozen small modules is a common, avoidable performance drag.
- Confusing "module inside an article" with a template position. To place a module inline inside article text, you need the Content - Load Module plugin enabled and a
{loadposition xy}or{loadmodule mod_name,Title}tag in the article — a template Position alone won't do this.
❓ Frequently Asked Questions
What's the difference between a module and a component in Joomla 6?
A component controls the main content area of a page — like the article or category view. A module is a smaller content block placed around it, in a sidebar, header, or footer. Menus, search boxes, and custom HTML blocks are all modules.
Can I show a module inside an article instead of a template position?
Yes. Enable the Content - Load Module plugin, then add {loadposition xy} or {loadmodule mod_name,Title} directly in the article text. This places the module inline, independent of any template position.
How many modules can I publish in one position?
As many as you want. Joomla stacks them in the order set by the Ordering column in the Module Manager, filtered to that position.
Why doesn't my new module show up on the frontend?
Check three things: Status is Published, Menu Assignment includes the current page, and the Position actually exists in the active template. Any one being wrong hides the module without an error message.
Do module positions change if I switch templates?
Yes. Positions are defined by the template, not the module. Switching templates usually breaks existing assignments, so modules need to be reassigned to the new template's position names.
Is module version history available in Joomla 6.0?
No — module versioning shipped in Joomla 6.1 (April 2026), not 6.0. It's off by default; enable "Save History" under Content → Modules → Options if you're on 6.1+ and want it.
✅ Last verified on Joomla 6.1 — August 2026