Webflow limits nested collection lists to one level and a maximum of 5 items per nested collection. You can bypass this using CMS Reference fields and lightweight jQuery to dynamically populate content client-side without affecting performance.
1. Use Multi-Reference Fields Instead of Nested Collections
- Create a Multi-Reference field in your CMS (e.g., Blog Post references “Tags”).
- In the static page, pull in the main CMS Collection (e.g., Blog Posts) as a Collection List.
- You won't nest another Collection List directly — that’s what Webflow restricts.
2. Add Hidden JSON Data Attributes for Each Parent Item
- Inside each item of the parent Collection List, include a custom
data
attribute to store child reference IDs or relevant keys (e.g., data-tags="tag1,tag2,tag3"
). - You can also pull full child data into a hidden
<div>
for retrieval (e.g., name, slug, image URL).
3. Use jQuery to Inject Child Items Dynamically
- Add a jQuery script in the Page Settings > Footer custom code area or Embed block after all elements.
- On document ready, the script should:
- Loop through parent items in the DOM.
- Parse the hidden data (IDs or values).
- Generate HTML (e.g., cards, list elements) and append it to a designated wrapper inside each parent item.
- For performance:
- Keep DOM inserts cached and minimal.
- Avoid repetitive lookups or global DOM queries inside loops.
- Use event delegation if necessary for interaction.
4. Lazy Load Using Intersection Observer or Display Limits
- If you anticipate many nested items, set up jQuery or native IntersectionObserver to lazy-load or chunk child content for performance.
- Alternatively, limit initial render to a few children and add a “Show More” button to load the rest selectively via click.
5. Host External JSON If Needed
- If child data is heavy or needs to be shared across pages, publish it to a lightweight JSON file hosted on the Webflow CMS (via a custom plain RTB collection page).
- Fetch it via jQuery’s
.getJSON()
and inject content as needed.
Summary
To bypass Webflow’s nesting and item limits, use Multi-Reference CMS fields and jQuery to dynamically insert child items. Store child data as hidden attributes or load it via JSON, then loop and inject it client-side. This method preserves performance and avoids Webflow's static nesting caps.