<p>You could do this manually within a <a href="https://craftcms.com/docs/templating-overview" rel="nofollow noreferrer">template</a>.</p>

<p>This code should get you started – it will output all of the sections and their entries:</p>

<pre><code>{# Loop through all the sections #}
{% for section in craft.sections.getAllSections() %}
  {# We only care about sections that have URLs #}
  {% if section.hasUrls %}
    &lt;h2&gt;{{ section.name }}&lt;/h2&gt;
    &lt;ul&gt;
      {# Loop through each of its entries #}
      {% for entry in craft.entries.sectionId(section.id).limit(null) %}
        &lt;li&gt;&lt;a href="{{ entry.url }}"&gt;{{ entry.title }}&lt;/a&gt;&lt;/li&gt;
      {% endfor %}
    &lt;/ul&gt;
  {% endif %}
{% endfor %}
</code></pre>

<p>Note that this won’t include any links to pages that only exist as a template. For example if you have a <code>contact.twig</code> template, and you don’t have a Single section in the Control Panel for it, then that will need to manually be added at the beginning or end of this list.</p>

CC BY-SA 3.0
2017-09-11T16:54:07.260Z
Thanks a lot.  This combined with: http://withchief.com/blog/craft-cms-the-very-basics-of-templating really got me set up to output a useful Sitemap.  I really appreciate your help!!!
Noah Learner
CC BY-SA 3.0
2017-09-10T01:20:58.883Z
2017-09-10T01:20:58.883Z
Brandon Kelly
<p>I'm just getting started with Craft (and digging it).</p>

<p>I've seen lots of xml sitemap plugins available already.  How do I create a human readable sitemap that will be browsable from the front end and that I can link to in the footer.</p>

<p>Thanks for your help in advance!</p>

<plugin-sitemap>
How do I create a Human readable sitemap in Craft CMS
# How do I create a Human readable sitemap in Craft CMS

(Asked by: username_0 on 2017-09-10)

I'm just getting started with Craft (and digging it).

I've seen lots of xml sitemap plugins available already. How do I create a human readable sitemap that will be browsable from the front end and that I can link to in the footer.

Thanks for your help in advance!

**Tags:** plugin-sitemap


---

## 1 answers

### Answer by username_1 on 2017-09-10. Score: 4

You could do this manually within a template.
This code should get you started – it will output all of the sections and their entries:
{# Loop through all the sections #}
{% for section in craft.sections.getAllSections() %}
  {# We only care about sections that have URLs #}
  {% if section.hasUrls %}
    {{ section.name }}
    
      {# Loop through each of its entries #}
      {% for entry in craft.entries.sectionId(section.id).limit(null) %}
        {{ entry.title }}
      {% endfor %}
    
  {% endif %}
{% endfor %}

Note that this won’t include any links to pages that only exist as a template. For example if you have a contact.twig template, and you don’t have a Single section in the Control Panel for it, then that will need to manually be added at the beginning or end of this list.

> **Comments:**
> **username_0**: Thanks a lot.  This combined with: http://withchief.com/blog/craft-cms-the-very-basics-of-templating really got me set up to output a useful Sitemap.  I really appreciate your help!!!  

---

