I'm working with dynamic pages in HubSpot and running into a slug conflict. I'd like to use the same base path (for example, /es/services) for more than one dynamic page, but HubSpot doesnt allow it. It either fails to detect the content correctly or forces me to modify the slug by adding extra elements.
Is there any workaround to reuse the same slug structure for different dynamic pages (maybe using different HubDB tables or filters)? Or is this simply a limitation of the platform?
HubSpot enforces unique URL paths across dynamic routes. You cannot map /es/services to multiple dynamic templates, either it fails to detect the correct content or auto-appends something like /es/services-1 or /es/services/abc. It's by design to prevent routing conflicts.
I’m assuming you want two separate dynamic pages (each backed by its own HubDB table or filter) to live under exactly /es/services without any extra slug bits right?
1. Right now HubSpot enforces a one-URL-one-page rule; once a CMS page—dynamic or static—claims a path, no other page can reuse that identical slug, even if the source tables are different. It’s a platform limitation, not something we can toggle off.
2. Because of that, the editor pushes you to append “-1” or another segment when you try create a second page; the behavior you’re seeing is expected, not a bug.
3. The only native workaround HubSpot itself recommends is to keep one dynamic page at the desired slug and drive all variations from inside the page: use query parameters ( ?type=foo ) or a column value in the HubDB row to decide which dataset to render. The November 2023 changelog even calls this out as the alternative when you’d otherwise duplicate pages.
4. If the goal is language versions, lean on HubSpot’s multi-language tool instead of new pages: create the Spanish variant of the same page, HubSpot will auto-prefix /es/ and you won’t hit a slug conflict.
5. Any “trick” like URL redirects or rewrite rules won’t help—yes, you could point /es/services to page /es/services-v2 behind the scenes, but visitors (and Google) will still land on the redirected URL, so you lose the clean slug anyway.
6. One edge option is to house both datasets in a single HubDB table, add a column for View A vs View B, and spin up to ten separate dynamic pages that filter on that column; each page needs a unique slug (/es/services-a, /es/services-b), but inside the template you can rewrite titles, H1s, etc., to look uniform—clunky, yet fully supported.
7. So in short: we can’t reuse identical base paths for multiple dynamic pages today; best path is one dynamic page + conditional logic (or multi-language variants) or accept unique slugs and handle display differences via filtering. Let me know if that line-up matches your use case, or if I missed something important.
Hope that’s useful.
Did my answer help? Please mark it as a solution to help others find it too.
Ruben Burdin HubSpot Advisor Founder @ Stacksync Real-Time Data Sync between any CRM and Database