Webflow limits nesting CMS collection lists and the number of referenced items shown (up to 5 for multi-reference fields), but you can dynamically display deeper or larger nested CMS items using lightweight jQuery and Webflow’s CMS API.
1. Understand Webflow’s CMS Limitations
- Maximum 5 nested collection lists: Webflow allows nesting CMS Collection Lists only 1 level deep.
- Multi-reference field constraint: Only shows up to 5 items per multi-reference item unless the collection is on a separate template page or rendered via the API.
2. Structure Your CMS Setup Strategically
- Use references or multi-reference fields in your collections (e.g., a Blog Post referencing multiple Authors or Tags).
- Place your main static CMS content on a static page using a Collection List.
- Outside the nested limitation zone, use vanilla containers with custom attributes (like
data-id
) to house dynamically injected content.
3. Create a Lightweight jQuery Data Fetch Logic
- Use jQuery’s
$.get
or fetch
API to pull related data from the Webflow CMS using the Webflow CMS API or custom structured JSON. - For performance, only fetch data on demand (e.g., on scroll or click) or use lazy loading techniques.
- Example flow:
- Assign a
data-item-id
to each static Collection List item. - On page load or interaction, fetch related items from a JSON file or Webflow's CMS API and append them into desired divs.
4. Host External CMS Data as JSON (Optional but Faster)
If you want to avoid using Webflow CMS API (due to authentication or rate limits):
- Export your referenced CMS content as a static JSON. You can use tools like Make (Integromat), Airtable, or Google Sheets to create it.
- Use jQuery to load external JSON files via
$.getJSON()
and populate elements into your Webflow layout dynamically.
5. Use Custom Attributes to Map Target Elements
- In your static Collection List, include hidden fields/custom attributes like
data-cms-id
. - Your jQuery script will use that ID to fetch and inject relevant nested data.
- Minimize script footprint: Use vanilla JS or jQuery slim version.
- Lazy load nested elements only when they’re visible (using Intersection Observer if needed).
- Cache loaded data and avoid repeated API calls.
Summary
To bypass Webflow’s nested collection limits on static pages, structure your CMS content with reference fields, then use jQuery to dynamically inject related CMS items by fetching via Webflow CMS API or pre-structured JSON files. This approach avoids the 5-item and nesting limitations while maintaining performance.