This comprehensive guideline with separate tutorials will help you to learn –  how to create a Blogger template from scratch.
You will have been found Blogger template designer software on Google search but those have many limitations for that you don’t like this.
Create Your Own Blogger Template Theme Development Tutorial
Disadvantages of using Blogger Template Designer Software are:

1. You are compelled to choose the given design example: menu, layout, etc.

2. You won’t learn how to code on a blogger template in future. So you can’t customize your template where it is needed.

3. You won’t learn the basic structure of Blogger template etc.

But this guideline will make your success to create a fully responsive, professional and custom Blogger theme or template that will be installed successfully and your visitors will see the changes what you will do now.

Thinking about publishing post to own designed and developed blog is just about thrilling, isn’t it?

How to create Blogger Template from Scratch:

Before starting Blogger Theme Development:
Check yourself. Are you skilled in the followings? If you don’t have any skill then you have to be skilled in HTML & CSS (At least). You can learn Web design with HTML & CSS courses from w3schools. It offers another popular course free. One of them Bootstrap, JavaScript, jQuery.
  • HTML (Required)
  • CSS (Required)
  • JavaScript (Optional)
  • XML (Optional)
  • Responsive Framework (Optional)

Read: How to create your first Responsive Blog HTML Template

The components you need:

1. HTML/CSS Editor. Off-line is recommended. Notepad++, Sublime Text, Dreamweaver, Geany etc. On which you prefer to code.

2. Notebook to save the essential codes, tips etc. Probably, you had tried to upload your designed HTML template on Blogger manually or copy-paste. But every time you failed to see the changes because many errors are shown on notification bar in Blogger HTML Editor.
Today you won’t be failed to see your designed HTML template through Blogger platform. Not only the out looking changes to your Template but also you will make your HTML template dynamic such as Header, Post Title, Post Body, Sidebar,
Footer will show generated data. You can custom logo, Blog Title, Sidebar etc through Blogger Dashboard without customizing any HTML code.

Hello World on Blogger

Say, “Hello World” through Blogger

1. From Blogger Dashboard → Theme → Edit HTML and clean up all codes. Select all by CtrlA and DELETE or Backspace. 2. Now paste the raw HTML of the basic page on the blank space. Then save the theme. Assume, our selected
codes are as below:

        <title>Title of Blog</title>
        <p>Hello World</p>

If you try to save the theme, you will see a notification as “There should be one and only one skin in the theme, and we found: 0“. It shows because we have to put just one skin within <head></head> tag. And that is –

/****CSS CODE*****/

Please put this code after </title> tag and now save your theme.

Ops! Again notification! And this notification is: “We did not find any section in your theme. A theme must have at least one
b:section tag
.” Blogger Editor shows this because we didn’t add any section in body tag. So just copy-paste the followings code in body tag. You can paste just before <p>Hello World</p>

<b:section id="hello" class="hello"></b:section>

N.B. We will discuss this after a while. Now save the theme.
Yes! There is no notification showing now. Just relax and preview. It is showing Hello World, isn’t it? Now go to your blog URL and see what happened.
OMG! You have said Hello World through Blogger! You have succeeded to run your HTML code!

Though it isn’t enough to create a Blogger template, you have almost done.  It is the primary and basic step.
You may ask What is <b:skin>...</b:skin> tag? This is for containing custom CSS code for decorating your Blog.

Creating A New Post to See How to Look It is

Let’s create a new post from Blogger Dashboard → Posts → New Post and write some dummy text to see what happened in published Blog. After publishing
the new post, we don’t see any post and our text. You exclaimed, “What !!! Nothing to see! Where is our post? Why this?” This is why we didn’t tell Blogger where the post will be shown. We didn’t create and select any section for the blog. Not only for the blog post if we want to show Header, Sidebar, Footer we have to determine those by creating sections and widgets. Instantly, copy-paste the followings codes in <body></body> tag.

<b:section class='main' id='main' showaddelement='yes'>
<b:widget id='Blog1' locked='false' title='Blog Posts' type='Blog' version='1'/>

And save your theme. If you see the preview you will see a published post with title and post. That means you have successfully published your blog. Now visit your blog. Obviously, you will be happy.

Run own created Blogger template

If you reload Blogger Editor, you will see some additional codes has been auto generated. 1. Some code has been generated before <head> tag and 2. Some code has been generated within <b:widget></b:widget>

Generated code before <head> tag defines XML version and others to render this template properly. If you expand the code within blog widget you will see main, post, comment-form, share-button etc. This is for default tools that is needed when we publish the post.

Understanding Section and Widget in Blogger Template

understanding and learn to create section and widget in Blogger

Though you have been succeeded to publish your blog by following the above instructions, probably you didn’t understand about section and widget. Why this? You should must learn the reasons. Because it will be needed in future to create new section and widget, after all we didn’t see how dynamic sidebar, header works. Since we want to learn and make a professional Blogger theme, we should work on redesigned but full responsive HTML template that contains Header, Navbar, Main, Sidebar, Footer etc. These features are not available on our current HTML template where we are working. It will be better decision to use built in full responsive framework like Bootstrap, W3CSS, etc. But I prefer to work with Bootstrap and this blog is also built with it. You no need to download Bootstrap. Here is the ready-made Bootstrap html empty template and we will work on this template. Go to
Blogger Dashboard → Theme → Edit HTML and clean up all codes from your current theme. You can backup your theme after deleting. Now paste the following Bootstrap HTML template to the editor and save. Now we will work on this template and forget the previous template. 🙂 This is our guinea pig template.

<html lang="en">

    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>My First Blogger Theme</title>

    <link rel="stylesheet" href="" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"

    <script src="" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"

    <script src=""></script>
    <script src=""></script>

<b:skin><![CDATA[ /**PUT YOUR ALL CSS HERE**/ ]]></b:skin>

    <div class="header-wrapper">
        <div class="container">
            <div class="brand">

    <div class="content-wrapper">
        <div class="container">
            <div class="row">
                <div class="col-md-9″>
                    <div class="post-wrapper">

                <div class="col-md-3″>
                    <div class="sidebar-wrapper">
    <div class="footer-wrapper">
        <div class="container">
            <p>Powered by
                <a href="">Blogger</a>

    <script src=""></script> </body>


The design of this template is like as:Demo of Blogger ThemeWe have said to show the post we created, it needs a section. Creating a section on Blogger theme is very easy.

What is the section in Blogger?

A blogger section is an allocated space on Blogger theme to contain widgets.

Rules of creating the section in Blogger:

1. Each section has the starting tag and ending tag. Starting tag is <b:section> and ending tag is </b:section>. After publishing the post if you inspect section from browser with Inspect element, you will see a div class instead of section. But in Blogger HTML Editor the sections are not changed to div class.

2. Each section must have a unique class and id. Naming the class and id of one section to another section is illegal.
Since section is converted into div, the class and id of section are remain in div as attributes. So we can customize the design of section by this class and id.
3.You are not allowed to nested of section. Under a section, creating another section is not valid.
4. You can insert only the given attributes. 5. It would be better to create section under a div.

Attributes of section tag:

The given char will show why, how you will use attributes within section tags.

What is the widget in Blogger?

We can call it Blogger plug-in. If we want to insert or install external gadgets then widget can create the scope to plug-in
Blogger section. By default Popular posts, Search Bar, Email Subscription, Link List, Images, Text, Labels, HTML/CSS/JavaScript
Code etc. are available on Blogger as gadgets.

Rules of the widget:

1. You can use starting and ending tag in declaring widget. Starting tag is <b:widget> and ending tag is </b:widget>. Or you can use only single closing tag as <b:widget/> . After publishing post if you inspect widget from browser with Inspect element, you will see a div class instead of widget. But in Blogger HTML Editor the widget are not changed to div class.

2. Each widget must have an unique id and a type attributes. Naming the class and id  of one section to another section is illegal. Since widget is converted into div, the id of widget are remain in div as attributes. So we can customize the design of widget by this id.
3. You are not allowed to nested of widget. Under a widget, creating another widget is not valid.
4. You can insert only the given attributes.
5. You must have to create widget within create section.
6. You are not allowedto insert HTML within widget.

Attributes of widget tag:

Attributes Values Required/Optional Refers to
id Unique name. Only letters and numbers are allowed. Example: header, navbar, sidebar, footer etc. Required Determining and customizing section with id.
type Header, Blog, Profile, PageList, AdSense, Attribution, HTML Required Define the type of widget.
locked yes, no Optional If yes then you can’t delete or move this widget.
title Put any title name. Example: Tools, Advertisement, Lists etc. Optional Show the title of this widget.
pageType all, archive, main, item, static, all Optional Define the page type of widget.
mobile yes, no, default Optional If yes, then the widget will be shown on mobile device.

Differences between Section and Widget in Blogger

Section Widget
Section is independent area. Dependent Page Elements that depends on Section.
Each Section can hold single or multiple widgets. Widget can’t hold section.
Section can’t be added dynamically. Widget can be added from Page Elements Tab (Add a Gadget)
Section has no attribute to control displaying or hiding on mobile devices. Widget has an attribute to control displaying or hiding on mobile devices.
Section has no title attribute to display or hide any title. Widget has title attribute to display or hide the name of title.
Section allows to add inner HTML directly. Widget doesn’t allow to add inner HTML directly.

The similarity between Section and Widget in Blogger

Section Widget
Section can’t hold another section. Widget also can’t another widget.
In published blog Section tag is replaced with a new div. Widget is also replaced with a new div.
Each Section has unique id. Each Widget has unique id.
Section has no attribute to control displaying or hiding on mobile devices. Widget has an attribute to control displaying or hiding on mobile devices.
Section has no title attribute to display or hide any title. Widget has title attribute to display or hide the name of title.
Section allows to add inner HTML directly. Widget doesn’t allow to add inner HTML directly.
Advantages of naming the class of section:
1. Though it is optional to name the class of section, we should add it because, the naming will help Blogger to determine how to transfer blog content when changing theme.

2. The native name of classes are ‘navbar’ for navigation menu, ‘header’ for header section, ‘main’ for post section, ‘sidebar’ for sidebar section where we put popular post, recent post, labels etc. and ‘footer’ for footer section of blog. Now create new sections and widgets, where you want to put this. Without header
& blog widget, I do recommend, create all section but it would be better to no create widgets in editor, since you can add widgets from
Dashboard → Layout.

How to Make Blogger Mobile Responsive Menu

You can make top bar responsive navigation menu for Blogger theme as you have done on raw HTML template. Using static Navigation menu in Blogger is the best way to avoid many problems. Though you can use ‘Pages’, ‘Link list’ gadget to insert link dynamically into your menu, it will be difficult for drop down menu. So you don’t need to dynamic data as you did and will do for others layout on Blogger. If you use Bootstrap Framework, then you can use navebar from here Or you can check the actionable article about responsive menu from w3schools. Put the codes into your XML theme, where you want to show navigation menu bar. After
creating Mobile responsive menu just paste the targeting URLs into anchor tags. Example:

<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Contact</a></li>

But you can dynamic homepage URL into
<li></li> tag as

<li><a expr:href='data:blog.homepageUrl >Homepage</a></li>

Making Dynamic Blogger

Since the basic structure of Blogger Theme is:
  • Header
  • Blog
  • Sidebar
  • Footer
We should make this dynamic so that we don’t need code again.
1. Making a Dynamic Header:
Put the following code in header div.

<b:section class='header' id='header' maxwidgets='1' showaddelement='yes'>
<b:widget id='Header1' locked='true' title='' type='Header'/>
2. Making Dynamic Blog Post:
Put the following code in post div.

<b:section class='main' id='main' showaddelement='no'>
<b:widget id='Blog1' locked='true' title='Blog Posts' type='Blog' version='1'/>
3. Making Dynamic Sidebar:
Put the following code in sidebar div.

<b:section class='sidebar' id='sidebar' preferred='yes' showaddelement='yes'>
4. Making a Dynamic Footer:
Put the following code in footer div.

<b:section class='sidebar' id='sidebar' preferred='yes' showaddelement='yes'>

Uses of Dynamic Default Data in Blogger
Blogger offers some default data tags by which we can call specific data to show. Example: If we want to the name of author of published post in every post, then we can use <> . Use this after the following tags.

<div class='post-footer-line post-footer-line-1'>

Similarly, there are many Blogger data tags to show specific data in published Blog. This Blogger Data Tags will work
only in Blog widget.

Blogger Data Tags What Show
<data:post.dateHeader/> The post’s date as header.
<data:title/> The blog’s title.
<data:description/> The blog’s description.
<data:olderPageTitle/> Title of the older page of posts.
<data:newerPageTitle/> Title of the newer page of posts.
<data:commentLabel/> Number of Comments.
<data:authorLabel/> It will show “posted by”.
<data:post.title /> The post’s title.
<data:post.body/> The post’s content.
<> The post’s author name.
<data:post.url/> The post’ url link.
<data:post.timestamp/> The post’s date and time.
<> The post’s label.
You can get more Blogger Data Tags from Blogger Support.

What is dynamic anchor tag in Blogger?

Dynamic Anchor In Blogger is converted to general anchor text with URL. Example: If the URL of homepage be then the following tag will be converted
<a expr:href='data:blog.homepageUrl >Homepage</a> to
<a href="">Homepage</a>

Some dynamic anchor tags for Blogger Theme
Dynamic Anchor URL What Show
<a expr:href='data:blog.homepageUrl >Homepage</a> A text with homepage’s URL
<a expr:href='data:post.url'>Read More</a> Read More Text with Post’s URL
<a expr:href='data:label.url' property='v:title' rel='v:url'><></a> Label Name with Label’s URL
<a expr:href='data:post.newerLinkUrl'><data:post.newerLinkText/></a> Newer Post Text with Newer Post URL
<a expr:href='data:post.olderLinkUrl'><data:post.newerLinkText/></a> Older Post Text with Older Post URL
<a expr:href='data:comment.authorUrl' rel='nofollow'><></a> Author’s name with URL
<a expr:href='data:comment.url' title='comment permalink'><data:comment.timestamp/></a> Comment Text to comment with URL
 Advanced More Dynamic Operation: Show/Hide, Custom Design, Landing page depending on page type and URL

If we want to hide sidebar in Homepage but want to show in post, page we have published or if we want to show separate and new design of body when the URL of blog is, then it has access to do it with using conditional tags. Using conditional tags, we can use additional HTML, CSS,
JavaScript as we want and this make Blogger more dynamic.

Hide Sidebar and make Squeeze page for homepage but post, page.

You can put the code before
</head> tag or after
<body> tag.

<b:if cond='data:blog.pageType == "index"'>
<b:if cond='data:blog.pageType == "item"'>
<b:if cond='data:blog.pageType == "static"'>

Learn more dynamic conditional tags for Blogger. By this conditional tags you can target specific URL, Page etc.

#Making Dynamic Title Tag

Now let’s go to make dynamic your Blog title tag. It is combinational of Blogger Data Tags and Conditional Tags. Replace your
<title></title> tag with the following codes.

<b:if cond='data:blog.pageType == "index"'>
<title>Blogger, Code and Ubuntu Platform - <data:blog.pageTitle/></title>
<b:if cond='data:blog.pageType != "error_page"'>
<title><data:blog.pageName/> - <data:blog.title/></title>
<b:if cond='data:blog.pageType == "error_page"'>
<title>Page Not Found - <data:blog.title/></title>

Replace  Blogger, Code and Ubuntu Platform with your desired title name for your blog.

#Custom Design Blogger Templates with CSS

We have already finished 80% of Blogger Theme Development. The rest 20% is about custom designing with CSS. Before editing the design you should learn
how to edit Blogger template. Finding all class & id of div, section, nav etc is so difficult, bored, time-wasting by manually. But I will tell you the tricks to collect all class and id with default CSS within few seconds.

1. Copy all the free CSS code for Blogger from the link.

2. Paste on to beautify or formatting.

3. After formatted copy the all CSS and paste on any HTML/CSS editor.

4. Modify CSS class and id if any have bad formatted.

5. Paste on your Blogger Theme within <b:skin> [[ /******CSS ******/ ]]></b:skin>.

6. Save your theme.

7. Next, customize your CSS with inspector tools from the browser.

Tips for Bootstrap: You can insert CSS class into specific HTML element. Suppose if you want to insert Bootstrap
label into <>, then wrap this elements with span and insert label class as below:

<span class='label label-success'><></span>

Tips for Font-Awesome: You can insert Font Awesome icon as below.

<span class='label label-success'><i class='fa fa-user'/><></span>

More Blogger Theme Customization

#How to arrange Author, Labels, Date up and down from post body?

1. First go to Blogger Dashboard → Layout → Blog Posts → Edit and you will see an pop window.

2. From ‘Post Page Options’ check the button what you want to show and uncheck the option you want to hide.

3. After scrolling down you will get ‘Arrange Items’. Drag your selected item up and down to set.

4. Save. If it doesn’t work then move related code from Blogger Editor by manually.

#How to add jump break in Blogger posts:

#How to customize date header Blogger:

Add the following CSS to Blogger Theme as according to your customization.

#How to show/hide labels on Blogger:

Add the following CSS to Blogger Theme .post labels{display:none;visibility:hidden} to hide and .post-labels{display:block;} to show.

#How to remove date and time from Blogger post:

Put the CSS Into your Blogger Theme.

#How to add date and time in Blogger:

Go to Blogger Dashboard → Layout → Blog Posts → Edit → Post Page Options Check the date option you want to show. Or Use the following code in your Blogger theme after <div class='post-footer-line post-footer-line-1'>

<span class='post-timestamp'>
 <b:if cond='data:top.showTimestamp'>
   <b:if cond='data:post.url'>
     <meta expr:content='data:post.url.canonical' itemprop='url'/>
     <a class='timestamp-link' expr:href='data:post.url' rel='bookmark' title='permanent link'><abbr class='published' expr:title='data:post.timestampISO8601' itemprop='datePublished'><data:post.timestamp/></abbr></a>

#How to change author name in Blogger:

Find for <> from your Blogger HTML editor and replace with your desired name with p tag. Example: <p>Elliyas</p>

#How to remove author name from Blogger posts:

Put the CSS Into your Blogger Theme.

.post-author vcard {display:none;visibility:hidden}

#How to add breadcrumb on Blogger:

See this article about how to add breadcrumb on Blogger.

#How to customize Dashboard Layout on Blogger:

#How to customize featured post on Blogger:

#How to remove errors of Schema Markup on Blogger:

#How to use font awesome on Blogger:

See this article about how to use Font Awesome on Blogger.

#How to use Google font on Blogger:

See this article about how to use Google Fonts on Blogger.

#How to insert SEO Friendly Meta Tags on Blogger:

Creating professional Blogger theme depends on how do you know code, how do you inspect element, stylesheet, how is your concept, idea to design. Though this tutorial provides the guideline to create Blogger theme professionally, your attempt & patient will define how much skill you will be next. Happy Coding! Have got this article helpful or not working? Put your comment below.

About The Author


  • Hallo
    I am first time visitor your blog and read this awesome post. I really appreciate your work, it is very knowledgeable. Good content with good wrinting. You are using adsense very cleverly. Your template is also very good. Will you please share your template with your viewers.

    Sorry to say that, I can't share this Blogger Theme.
    But you can purchase the similar, simple, responsive Blogger Theme, I have developed for selling which more efficient for Google AdSense

  • Thank you for the useful Tutorial, definitely bookmark this page.

    Sir I want to ask your opinion about Accelerated Mobile Page. applying AMP in blogger seems like a headache to me. If I not start learning or use AMP in blogger, will I be the only one left behind in the future, especially on google search?

    Or do you think that AMP is 'just a small ripple in the sea' we should not too concern that we can be succesful without AMP (especially on google search) even 5 years or 10 years later. Sorry for the weird question 😀 .

  • Welcome Daryadi Sarumpaet & happy to see your comment.

    Your question about AMP is very thoughtful & we must be concerned about this.

    My opinion on AMP is –

    1. We should not be serious much within 1/2 years. Specially for the Blogger platform.

    2. Since the objective of AMP is making website consistently fast, beautiful and high-performing on Mobile Device, we should apply this project on our Website, if the major visitors visit through Mobile.

    3. Definitely, it has the impact on Google Search for the Mobile Device.

  • and im not make e commerce blog or i make other blogs so blogger is perfect for blogging as carrier.?

    becoz im confuesed which platform is best for blogging becoz in the internet many people says if you want to earn money than wordpress is best becoz of lots of plugins but i think blogger is good becoz of seo and free of cost

  • hi great article . it really helped me a lot
    i just wanna point to something : in "4- making a dynamic footer" the code you add has the same class and id as the side bar … i'm a beginner and spent like half an hour to figure this hope you fix it… please correct me if i'm wrong

  • Hello sir,
    Can you tell how to make the posts on home screen horizontal like in built-in theme of blogger emporio
    I tried display:inline-block and making the width of each post 50% but it didn’t work do please can you assist.
    Thanks in advance.

  • sir pls tell me i read article about blogger someone say blogger created google i know but someone says google is authorize for one day google delete your blog without your permission. right or wrond pls sir

    tell me with detail why google delete if you have a artilce about this so give me the link.

  • sir help me plz google sent me a DMCA request for Copyrighted material (DMCA) for i post a new movie for download so what i do now sir help me.

    now i deleted that movies pages.

  • sir i have a new blog about whatsapp status images and jokes can i buy a (.info) domain name because i heard about .info domain name not generate more traffic plz help me .info domain name is good for whatsapp status blog or not.

  • Write a Reply or Comment

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