diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html
index 2f3e9d41e0..ca04cf9e30 100644
--- a/layouts/_default/taxonomy.html
+++ b/layouts/_default/taxonomy.html
@@ -9,34 +9,31 @@
 <h1 id="{{ $title | plainify | anchorize }}">{{ $title }}</h1>
 {{- .Content }}
 {{- $lastCapital := "" }}
-{{- $terms := slice }}
+{{- $pages := slice }}
 {{- range .Data.Terms }}
-  {{- $terms = $terms | append (dict "Title" (default .Page.Data.Term .Page.Title) "Term" . )}}
-  {{- if not .Page.Title }}
-    {{- warnf "%q: You have not given a 'title' in the frontmatter of your term page, the urlized title will be used instead" .Page.File.Filename }}
-  {{- end }}
-{{- end }}
-{{- range sort $terms ".Title" }}
-  {{- $capital := substr .Title 0 1 | upper }}
   {{- $len := 0 }}
-  {{- range .Term.Pages }}
+  {{- range .Pages }}
     {{- $c:=""}}{{/* count pages of term */}}
     {{- if and .Title .RelPermalink (or (ne (.Scratch.Get "relearnIsHiddenStem") true) (ne .Site.Params.disableTagHiddenPages true) ) }}
       {{- $len = add $len 1 }}
     {{- end }}
   {{- end }}
   {{- if $len }}
-    {{- if ne $lastCapital $capital }}
-      {{- if ne $lastCapital "" }}
+    {{- $pages = $pages| append (dict "Title" (default .Page.Data.Term .Page.Title) "Page" . "Len" $len )}}
+  {{- end }}
+{{- end }}
+{{- range sort $pages ".Title" }}
+  {{- $capital := substr .Title 0 1 | upper }}
+  {{- if ne $lastCapital $capital }}
+    {{- if ne $lastCapital "" }}
 </ul>
-      {{- end }}
+    {{- end }}
 <h2 id="{{ $capital | plainify | anchorize }}">{{ $capital }}</h2>
 <ul class="columnize">
-    {{- end }}
-    {{- $c:=""}}{{/* display terms of a taxonomy */}}
-  <li><a href="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" .Term.Page) }}">{{ .Title }}</a> ({{ $len }})</li>
-    {{- $lastCapital = $capital }}
   {{- end }}
+  {{- $c:=""}}{{/* display terms of a taxonomy */}}
+  <li><a href="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" .Term.Page) }}">{{ .Title }}</a> ({{ .Len }})</li>
+  {{- $lastCapital = $capital }}
 {{- end }}
 {{- if ne $lastCapital "" }}
 </ul>
diff --git a/layouts/partials/toc-id.html b/layouts/partials/toc-id.html
index efee626f09..c974c64c7f 100644
--- a/layouts/partials/toc-id.html
+++ b/layouts/partials/toc-id.html
@@ -1,55 +1,44 @@
-{{- if eq .Kind "taxonomy" }}
-<nav id="TableOfContents">
-  <ul>
-  {{- $lastCapital := "" }}
-  {{- $terms := slice }}
-  {{- range .Data.Terms }}
-    {{- $terms = $terms | append (dict "Title" (default .Page.Data.Term .Page.Title) "Term" . )}}
-  {{- end }}
-  {{- range sort $terms ".Title" }}
-    {{- $capital := substr .Title 0 1 | upper }}
-    {{- $len := 0 }}
-    {{- range .Term.Pages }}
-      {{- $c:=""}}{{/* count pages of term */}}
-      {{- if and .Title .RelPermalink (or (ne (.Scratch.Get "relearnIsHiddenStem") true) (ne .Site.Params.disableTagHiddenPages true) ) }}
-        {{- $len = add $len 1 }}
-      {{- end }}
-    {{- end }}
-    {{- if $len }}
-      {{- if ne $lastCapital $capital }}
-    <li><a href="#{{ $capital | plainify | anchorize }}">{{ $capital }}</a></li>
-      {{- end }}
-      {{- $lastCapital = $capital }}
-    {{- end }}
-  {{- end }}
-  </ul>
-</nav>
-{{- else if eq .Kind "term" }}
+{{- if or (eq .Kind "taxonomy") (eq .Kind "term") }}
   {{- $lastCapital := "" }}
   {{- $pages := slice }}
-  {{- range .Pages }}
-    {{- if and .Title .RelPermalink (or (ne (.Scratch.Get "relearnIsHiddenStem") true) (ne .Site.Params.disableTagHiddenPages true) ) }}
-      {{- $pages = $pages | append (dict "Title" .Title "Page" . )}}
+  {{- if eq .Kind "taxonomy" }}
+    {{- range .Data.Terms }}
+      {{- $len := 0 }}
+      {{- range .Pages }}
+        {{- $c:=""}}{{/* count pages of term */}}
+        {{- if and .Title .RelPermalink (or (ne (.Scratch.Get "relearnIsHiddenStem") true) (ne .Site.Params.disableTagHiddenPages true) ) }}
+          {{- $len = add $len 1 }}
+        {{- end }}
+      {{- end }}
+      {{- if $len }}
+        {{- $pages = $pages| append (dict "Title" (default .Page.Data.Term .Page.Title) "Page" . "Len" $len )}}
+      {{- end }}
+    {{- end }}
+  {{- else if eq .Kind "term" }}
+    {{- range .Pages }}
+      {{- if and .Title .RelPermalink (or (ne (.Scratch.Get "relearnIsHiddenStem") true) (ne .Site.Params.disableTagHiddenPages true) ) }}
+        {{- $pages = $pages | append (dict "Title" .Title "Page" . )}}
+      {{- end }}
     {{- end }}
   {{- end }}
-  {{- $toc_term := "" }}
+  {{- $toc_pages := "" }}
   {{- range sort $pages ".Title" }}
     {{- $capital := substr .Title 0 1 | upper }}
     {{- if ne $lastCapital $capital }}
-    {{- $toc_term = printf "%s    <li><a href=\"#%s\">%s</a></li>\n" $toc_term ($capital | plainify | anchorize) $capital }}
+      {{- $toc_pages = printf "%s    <li><a href=\"#%s\">%s</a></li>\n" $toc_pages ($capital | plainify | anchorize) $capital }}
     {{- end }}
     {{- $lastCapital = $capital }}
   {{- end }}
   {{- $toc := trim (partial "toc.html" .) " \n\r\t" }}
-  {{- if and (not $toc) $toc_term }}
+  {{- if and (not $toc) $toc_pages }}
     {{- $toc = printf "<nav id=\"TableOfContents\"></nav>" }}
   {{- end }}
-  {{- if and $toc $toc_term }}
+  {{- if and $toc $toc_pages }}
     {{- $toc = replaceRE "^(<nav id=\"TableOfContents\">)[\\s]*" "${1}\n  <ul>\n" $toc }}
     {{- $toc = replaceRE "^(<nav id=\"TableOfContents\">[\\s]*<ul>)[\\s]*<ul>[\\n\\r]*" "${1}\n" $toc }}
     {{- $toc = replaceRE "[\\s]*(</nav>)$" "\n  </ul>\n${1}" $toc }}
     {{- $toc = replaceRE "[ \\t]*</ul>[\\s]*(</ul>[\\s]*</nav>)$" "  ${1}" $toc }}
-    {{- $toc = replaceRE "([ \\t]*</ul>[\\s]*</nav>)$" (printf "%s${1}" $toc_term) $toc }}
+    {{- $toc = replaceRE "([ \\t]*</ul>[\\s]*</nav>)$" (printf "%s${1}" $toc_pages) $toc }}
   {{- end }}
 {{ $toc | safeHTML }}
 {{- else }}