# Custom path for taxonomy pages?

**URL:** <https://zola.discourse.group/t/custom-path-for-taxonomy-pages/82>\
**Category:** Support\
**Created:** [April 4, 2019, 6:27am UTC](https://zola.discourse.group/t/custom-path-for-taxonomy-pages/82 "2019-04-04T06:27:56Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![danielw](https://avatars.discourse-cdn.com/v4/letter/d/e79b87/32.png) [@danielw](https://zola.discourse.group/u/danielw)\
**Post date:** [April 4, 2019, 6:27am UTC](https://zola.discourse.group/t/custom-path-for-taxonomy-pages/82/1 "2019-04-04T06:27:56Z")

</div>

Hey there,

first of all, thanks a lot for all the work you put into Zola. It’s an extremely enjoyable experience to work with it. 🙂

I have a question about using the taxonomies feature, though. I am currently porting my website from Octopress to Zola, and I would like to be able to continue using the same URLs.

On my current website, I have a tags taxonomy, and the path for each tag is like this:

```
/blog/tags/{tagname}

```

Is there a configuration option that I missed for customizing the path of a taxonomy in Zola? Assuming a taxonomy called _tags_ seems to be hardcoded to

```
/tags/{tagname}

```

I am not using pagination, so I don’t think the `paginate_path` can help me there.

I categorized this as _Support_, but maybe, if this kind of customization is not supported yet, it should be changed to _Feature Request_.

---

<div class="post-metadata">

**Author:** ![keats](https://avatars.discourse-cdn.com/v4/letter/k/34f0e0/32.png) [@keats](https://zola.discourse.group/u/keats)\
**Post date:** [April 4, 2019, 1:00pm UTC](https://zola.discourse.group/t/custom-path-for-taxonomy-pages/82/2 "2019-04-04T13:00:56Z")

</div>

They are currently hardcoded. You have to keep in mind taxonomies can be language specific so it is a bit more complex than just having an option.

---

<div class="post-metadata">

**Author:** ![danielw](https://avatars.discourse-cdn.com/v4/letter/d/e79b87/32.png) [@danielw](https://zola.discourse.group/u/danielw)\
**Post date:** [April 4, 2019, 1:35pm UTC](https://zola.discourse.group/t/custom-path-for-taxonomy-pages/82/3 "2019-04-04T13:35:25Z")

</div>

Thanks for confirming my assumption. Could you please clarify why a single option would be too simple? If I understand the multi-language feature and taxonomies correctly, right now, a language-specific taxonomy would have a hardcoded path that looks like this:

```
{base_url}/{code}/{taxonomy_name}/{term}

```

Sections seem to have a path that looks like this:

```
{base_url}/{code}/{section_name}/

```

So, in general, the `{base_url}/{code}` seems to be a given.

Now, imagine we had an option called `taxonomy_path`, and I have a taxonomy called `tags` with the following configuration:

`taxonomy_path = "/foo/bar/"`

Then I would expect the following URL for a term in a non-localized taxonomy:

```
{base_url}/foo/bar/{term}

```

And the following path for a term in a language-specific taxonomy:

```
{base_url}/{code}/foo/bar/{term}

```

At first glance, it looks to me like this could be handled with a single option. Please let me know if I am missing something or my assumptions are wrong.

Maybe, the name `taxonomy_path` is not ideal, and it should actually be `taxonomy_slug`, because for other content, `path` always seems to override the complete path after the base URL.

---

<div class="post-metadata">

**Author:** ![keats](https://avatars.discourse-cdn.com/v4/letter/k/34f0e0/32.png) [@keats](https://zola.discourse.group/u/keats)\
**Post date:** [April 5, 2019, 3:53pm UTC](https://zola.discourse.group/t/custom-path-for-taxonomy-pages/82/4 "2019-04-05T15:53:35Z")

</div>

> [@danielw](#):
>
> At first glance, it looks to me like this could be handled with a single option. Please let me know if I am missing something or my assumptions are wrong.

You are probably not missing anything. I remember there were some issues with taxonomies and multi-lingual sites, I’ll have to look again at the discussion to refresh my memory.  
The only change to your proposal would be to have that live in config.toml as part of the taxonomies definition so it would probably just be named `path`.  
Typing this made me remember what is missing with taxonomies/multilingual: taxonomies don’t currently take a `lang` so content might be duplicated if you have the same language with different locales and use taxonomies. That change can go in with your proposed path change I believe (breaking change however so for 0.7).

---

<div class="post-metadata">

**Author:** ![danielw](https://avatars.discourse-cdn.com/v4/letter/d/e79b87/32.png) [@danielw](https://zola.discourse.group/u/danielw)\
**Post date:** [April 6, 2019, 4:47pm UTC](https://zola.discourse.group/t/custom-path-for-taxonomy-pages/82/5 "2019-04-06T16:47:37Z")

</div>

> [@"keats](#):
>
> The only change to your proposal would be to have that live in config.toml as part of the taxonomies definition so it would probably just be named `path`.

Yes, I was thinking about this as well after I had already posted my previous comment in this thread. And I agree that `path` is probably a better name in this case.

> [@"keats](#):
>
> Typing this made me remember what is missing with taxonomies/multilingual: taxonomies don’t currently take a `lang` so content might be duplicated if you have the same language with different locales and use taxonomies. That change can go in with your proposed path change I believe (breaking change however so for 0.7).

I must admit that I am not sure what exactly you mean regarding taxonomies not taking a language, duplicated content as well as same language and different locales. My understanding based on [Taxonomies | Zola](https://www.getzola.org/documentation/content/taxonomies/) is that taxonomies do take a language (but I think I just didn’t get what you were referring to), and I don’t even know about the concept of a locale in the context of Zola. It would be great if you could elaborate on this. 🙂

By the way, would you prefer to implement my suggested changes regarding the taxonomy path yourself? I could imagine giving it a shot, but I may need some guidance.

---

<div class="post-metadata">

**Author:** ![EvanCarroll](https://yyz2.discourse-cdn.com/free1/user_avatar/zola.discourse.group/evancarroll/32/1537_2.png) [@EvanCarroll](https://zola.discourse.group/u/EvanCarroll)\
**Post date:** [October 6, 2025, 1:50pm UTC](https://zola.discourse.group/t/custom-path-for-taxonomy-pages/82/6 "2025-10-06T13:50:01Z")

</div>

I started implementing this functionality. I opened the first patch to add taxonomy\_root, which gives you the ability to home the directory in a different root rather than just dumping these files in `/` which seems like an awkward default anyway. In my case, I intend to put them in `/t/`.

The next patch will make a `taxonomy_path` relative to the `taxonomy_path` relative to the `taxonomy_root` which if not set is exactly what’s requested.

> <https://github.com/getzola/zola/pull/2994>
>
> Taxonomy functionality generates pages entirely for you. It makes sense to be ab…le to home these in specific directory outside of the rest of the content. Here we do that with the new option \`taxonomy\_root\`.
> 
> This is lead up to the functionality requested in here. https://zola.discourse.group/t/custom-path-for-taxonomy-pages/82
> 
> \----
> 
> \*\*IMPORTANT: Please do not create a Pull Request adding a new feature without discussing it first.\*\*
> 
> The place to discuss new features is the forum: \<https://zola.discourse.group/\>
> If you want to add a new feature, please open a thread there first in the feature requests section.
> 
> Sanity check:
> 
> \* \[x\] Have you checked to ensure there aren't other open \[Pull Requests\](https://github.com/getzola/zola/pulls) for the same update/change?
> 
> \## Code changes
> (Delete or ignore this section for documentation changes)
> 
> \* \[x\] Are you doing the PR on the \`next\` branch?
> 
> If the change is a new feature or adding to/changing an existing one:
> 
> \* \[x \] Have you created/updated the relevant documentation page(s)?
