How to Add Custom Sitemap Page in Blogger

A good blog is one which provides an ease for visitors to find the right content they are looking for. This is possible by adding a sitemap page on your blog. Sitemap is simply a list of web pages of a website that is accessible to both users and search engines.

Add custom sitemap page in Blogger


Blogger already has an XML sitemap of your blog which is useful for search engines and other web crawlers to crawl your website faster and more efficiently. This XML sitemap is located in the root directory of your blog at /sitemap.xml address.

Sitemap is as important for visitors as it is for search engines. Unfortunately, the XML sitemap can’t be used for visitors as it doesn’t have a user interface to display dynamic content. You have to create an HTML sitemap page for your blog.

Unlike XML, HTML sitemap is a regular HTML page which displays your blog posts in an organized manner. This tutorial will guide you how to add a custom sitemap page on your Blogger blog.

Why you should add sitemap page on your blog?

Let’s first discuss why it’s necessary to add sitemap page on your blog. These are some of the reasons –

  • Improve site navigation – Sitemap helps your visitors to navigate through all of your blog posts easily.
  • Improve user engagement – By placing all your blog posts on a single page, you are engaging visitors with your content.
  • Increase page views – Sitemap will also increase your page views and if you are monetizing your blog, you can hope to see some rise in your revenue also.

Features of this Blogger sitemap page

Here are some of the features of HTML sitemap page that we are going to add on your Blogger blog –

  • Label-based posts – All your blog posts are arranged based on the label that they are tagged in.
  • Tag for new posts – The latest blog posts are tagged with a NEW! sticker.
  • Automatic updating – When you post new blog posts, they will be added to the sitemap page automatically.

How to add custom sitemap page in Blogger

This step-by-step guide will show you how to add custom sitemap page on your Blogger blog –

  1. Login to your Blogger Dashboard and go to Pages section.
  2. Click “New Page” button.
  3. Now type “Sitemap” in the page title box. Make sure to read this guide on how to add custom permalink URL in Blogger pages.
  4. Switch to HTML mode and paste the following code in the text editor:
    <style>
    p.labels a{color:#242424;text-transform:uppercase;font-size:15px;}
    a.post-titles {color:#32A4D6;}
    ol li{list-style-type:decimal;line-height:25px;}
    </style>
    <script>
    //<![CDATA[
    var postTitle=new Array();var postUrl=new Array();var postPublished=new Array();var postDate=new Array();var postLabels=new Array();var postRecent=new Array();var sortBy="titleasc";var tocLoaded=false;var numChars=250;var postFilter="";var numberfeed=0;function bloggersitemap(a){function b(){if("entry" in a.feed){var d=a.feed.entry.length;numberfeed=d;ii=0;for(var h=0;h<d;h++){var n=a.feed.entry[h];var e=n.title.$t;var m=n.published.$t.substring(0,10);var j;for(var g=0;g<n.link.length;g++){if(n.link[g].rel=="alternate"){j=n.link[g].href;break}}var o="";for(var g=0;g<n.link.length;g++){if(n.link[g].rel=="enclosure"){o=n.link[g].href;break}}var c="";if("category" in n){for(var g=0;g<n.category.length;g++){c=n.category[g].term;var f=c.lastIndexOf(";");if(f!=-1){c=c.substring(0,f)}postLabels[ii]=c;postTitle[ii]=e;postDate[ii]=m;postUrl[ii]=j;postPublished[ii]=o;if(h<10){postRecent[ii]=true}else{postRecent[ii]=false}ii=ii+1}}}}}b();sortBy="titleasc";sortPosts(sortBy);sortlabel();tocLoaded=true;displayToc2();}function filterPosts(a){scroll(0,0);postFilter=a;displayToc(postFilter)}function allPosts(){sortlabel();postFilter="";displayToc(postFilter)}function sortPosts(d){function c(e,g){var f=postTitle[e];postTitle[e]=postTitle[g];postTitle[g]=f;var f=postDate[e];postDate[e]=postDate[g];postDate[g]=f;var f=postUrl[e];postUrl[e]=postUrl[g];postUrl[g]=f;var f=postLabels[e];postLabels[e]=postLabels[g];postLabels[g]=f;var f=postPublished[e];postPublished[e]=postPublished[g];postPublished[g]=f;var f=postRecent[e];postRecent[e]=postRecent[g];postRecent[g]=f}for(var b=0;b<postTitle.length-1;b++){for(var a=b+1;a<postTitle.length;a++){if(d=="titleasc"){if(postTitle[b]>postTitle[a]){c(b,a)}}if(d=="titledesc"){if(postTitle[b]<postTitle[a]){c(b,a)}}if(d=="dateoldest"){if(postDate[b]>postDate[a]){c(b,a)}}if(d=="datenewest"){if(postDate[b]<postDate[a]){c(b,a)}}if(d=="orderlabel"){if(postLabels[b]>postLabels[a]){c(b,a)}}}}}function sortlabel(){sortBy="orderlabel";sortPosts(sortBy);var a=0;var b=0;while(b<postTitle.length){temp1=postLabels[b];firsti=a;do{a=a+1}while(postLabels[a]==temp1);b=a;sortPosts2(firsti,a);if(b>postTitle.length){break}}}function sortPosts2(d,c){function e(f,h){var g=postTitle[f];postTitle[f]=postTitle[h];postTitle[h]=g;var g=postDate[f];postDate[f]=postDate[h];postDate[h]=g;var g=postUrl[f];postUrl[f]=postUrl[h];postUrl[h]=g;var g=postLabels[f];postLabels[f]=postLabels[h];postLabels[h]=g;var g=postPublished[f];postPublished[f]=postPublished[h];postPublished[h]=g;var g=postRecent[f];postRecent[f]=postRecent[h];postRecent[h]=g}for(var b=d;b<c-1;b++){for(var a=b+1;a<c;a++){if(postTitle[b]>postTitle[a]){e(b,a)}}}}function displayToc(a){var l=0;var h="";var e="Post Title";var m="Click to sort by title";var d="Date";var k="Click to sort by date";var c="Category";var j="";if(sortBy=="titleasc"){m+=" (descending)";k+=" (newest first)"}if(sortBy=="titledesc"){m+=" (ascending)";k+=" (newest first)"}if(sortBy=="dateoldest"){m+=" (ascending)";k+=" (newest first)"}if(sortBy=="datenewest"){m+=" (ascending)";k+=" (oldest first)"}if(postFilter!=""){j="Click to view all"}h+="<table>";h+="
    <tr>";h+='<td class="header1">';h+='<a href="javascript:toggleTitleSort();" title="'+m+'">'+e+"</a>";h+="</td>";h+='<td class="header2">';h+='<a href="javascript:toggleDateSort();" title="'+k+'">'+d+"</a>";h+="</td>";h+='<td class="header3">';h+='<a href="javascript:allPosts();" title="'+j+'">'+c+"</a>";h+="</td>";h+='<td class="header4">';h+="Read all";h+="</td>";h+="</tr>
    ";for(var g=0;g<postTitle.length;g++){if(a==""){h+='
    <tr><td class="entry1"><a href="'+postUrl[g]+'">'+postTitle[g]+'</a></td><td class="entry2">'+postDate[g]+'</td><td class="entry3">'+postLabels[g]+'</td><td class="entry4"><a href="'+postPublished[g]+'">Read</a></td></tr>
    ';l++}else{z=postLabels[g].lastIndexOf(a);if(z!=-1){h+='
    <tr><td class="entry1"><a href="'+postUrl[g]+'">'+postTitle[g]+'</a></td><td class="entry2">'+postDate[g]+'</td><td class="entry3">'+postLabels[g]+'</td><td class="entry4"><a href="'+postPublished[g]+'">Read</a></td></tr>
    ';l++}}}h+="</table>
    ";if(l==postTitle.length){var f='<span class="toc-note">Show All '+postTitle.length+" Posts<br/></span>"}else{var f='<span class="toc-note">Show '+l+" posts by category '";f+=postFilter+"' the "+postTitle.length+" Total Posts<br/></span>"}var b=document.getElementById("toc");b.innerHTML=f+h}function displayToc2(){var a=0;var b=0;while(b<postTitle.length){temp1=postLabels[b];document.write("<p/>");document.write('<p class="labels">
    <a href="/search/label/'+temp1+'">'+temp1+"</a></p>
    <ol>");firsti=a;do{document.write("
    <li>");document.write('<a class="post-titles" href="'+postUrl[a]+'">'+postTitle[a]+"</a>");if(postRecent[a]==true){document.write(' - <strong><span style="color: rgb(255, 0, 0);">New!</span></strong>')}document.write("</li>
    ");a=a+1}while(postLabels[a]==temp1);b=a;document.write("</ol>
    ");sortPosts2(firsti,a);if(b>postTitle.length){break}}}function toggleTitleSort(){if(sortBy=="titleasc"){sortBy="titledesc"}else{sortBy="titleasc"}sortPosts(sortBy);displayToc(postFilter)}function toggleDateSort(){if(sortBy=="datenewest"){sortBy="dateoldest"}else{sortBy="datenewest"}sortPosts(sortBy);displayToc(postFilter)}function showToc(){if(tocLoaded){displayToc(postFilter);var a=document.getElementById("toclink")}else{alert("Just wait... TOC is loading")}}function hideToc(){var a=document.getElementById("toc");a.innerHTML="";var b=document.getElementById("toclink");b.innerHTML='<a href="#" onclick="scroll(0,0); showToc(); Effect.toggle('toc-result','blind');">?? Display Table of Contents</a> <img src="https://1.bp.blogspot.com/-_VZwBpHw_SI/UrXvLbFxacI/AAAAAAAAFiQ/ZGqWZUZesCI/s1600/new_icon.gif"/>'}function looptemp2(){for(var a=0;a<numberfeed;a++){document.write("<br>");document.write('Post Link : <a href="'+postUrl[a]+'">'+postTitle[a]+"</a><br>");document.write('Read all : <a href="'+postPublished[a]+'">'+postTitle[a]+"</a><br>");document.write("<br>")}};
    //]]>
    </script>
    <script src="https://www.your-blog-url.com/feeds/posts/default?max-results=9999&alt=json-in-script&callback=bloggersitemap"></script>
    

    Make sure to replace your-blog-url with the URL of your blog.

  5. Under Page Settings, you can add the search description of this page. To disable comments, simply click “Don’t allow” button in the Reader comments option.
  6. Finally, tap the “Publish” button to post the page. That’s it.

Once you have created the sitemap page, go to the Layout section and add sitemap link in the header or footer navigation menu of your blog.

So that’s how you can add custom HTML sitemap page on your Blogger blog. If you want to ask something about this tutorial, feel free to share it in the comment section.

About the author

Vivek Chaudhary Author
Tech writer & founder @Geek Instructor • Vivek Chaudhary is an experienced tech blogger who has been writing about technology for more than ten years. He's written over 1500 articles covering various tech topics. Vivek is passionate about sharing his expertise to help others. Beyond the digital realm, he enjoys traveling and creating videos on YouTube. Feel free to contact here: vivek@geekinstructor.com

Leave a Comment

Your email address will not be published. Required fields are marked *