Almost 90% of Blogger blogs that run a SEO test using some online tool gets an error that the homepage does not contain h1 heading Tag which is mandatory for all pages. All pages must contain the primary title inside this tag and all subsequent titles must follow by h2, h3 and so on. There must be a single h1 tag per page for better SEO results. Blogger removes the h1 tag from the Header title when you replace the Title and description with a Logo. In this tutorial we will teach you how to enclose your Blogspot Logo Image and Text inside h1 tag and we would also assign the Schema micro data tags. Your blog will now show H1 only on your homepage and Search/Label pages which are called index pages but it won't show H1 on item pages which include your blog Posts. Inside your Posts only Post title can be granted a H1 tag to give it precedence and priority over all other Headline titles.
Note: This is the first tutorial across the web which is highlighting this issue and proposing a solution to the mystery of a missing H1 Headline Tag in blogger.
Default Blogger hierarchy for Headline Titles
By default blogger assigns Heading tags in this order which is wrong:
Note: Index Page is your homepage or Label/Search.
Condition#1: When no Image is used as logo but instead title and Description is shown.
Heading Tag | Assigned to |
---|---|
h1 | Assigned to Blog Title. |
h2 | Assigned to Sidebar Titles. |
h3 | Assigned to Post Titles, Subheadings within post body |
How can your posts rank well when Blogger is assigning H2 to your sidebar titles but even less important tag i.e. H3 to your Posts?
Condition#2: When Image is used as logo in Header
Heading Tag | Assigned to |
---|---|
h1 | Missing: Assigned to none, removed! |
h2 | Assigned to Sidebar Titles. |
h3 | Assigned to Post Titles, Subheadings within post body |
In this case Blogger will remove H1 tag from your blog title and leaving your entire blog deprived of H1 tag. This is the reason when you get errors while auditing your sites.
Custom Optimized Hierarchy For Titles
Following is the SEO friendly and recommend way to display headlines in a Blog. Same method is followed on our Wordpress blogs and MBT also.
Condition#1: When no Image is used as logo but instead title and Description is shown.
Heading Tag | Assigned to |
---|---|
h1 | Assigned To Blog Title only on Index Pages and archives and assigned to Post Title on the Item Page. In Item Pages, The Blog Title will have H2 Tag and instead that H1 tag will be assigned to Post Title. This way every page on your blog will have a H1 tag assigned to your most important Title. |
h2 | Assigned to Post Titles on Index Pages and archive. Assigned to Sidebar Titles on all pages. |
h3 | Assigned to Subheadings only |
Condition#2: When Image is used as logo in Header
Heading Tag | Assigned to |
---|---|
h1 | Assigned To Blog Title Logo only on Index Pages and archive page and assigned to Post Title on the Item Page. One H1 Tag will be seen on each page. |
h2 | Assigned to Post Titles on Index Pages and archive. Assigned to Sidebar Titles on all pages. |
h3 | Assigned to Subheadings only |
This simple fix will make your blogs much more optimized and will also help search robots to better understand your Headline significance in terms of organized hierarchy. Lets start making the changes.
Optimizing Heading Tags in Blogger
We have divided this tutorial in two parts. In Part one will fix the Blog Title Tag issue and in Part Two we will optimize the Post Titles.
Part 1: Optimize Header Blog Title Tag
1 Go To Blogger > Template > Backup your template
2 Click "Edit HTML"
3 Search this code
<div id='header'>
Replace it with this code
<div id='header' itemscope='itemscope' itemtype='http://schema.org/Organization'>
If you could not find <div id='header'> then instead find this code <header> and replace it with this
<header itemscope='itemscope' itemtype='http://schema.org/Organization'>
4 Next search for this code <!--Show the image only-->
Just below it you will find the following HTML code
<a expr:href='data:blog.homepageUrl' style='display: block'>
<img expr:alt='data:title' expr:height='data:height' expr:id='data:widget.instanceId + "_headerimg"' expr:src='data:sourceUrl' expr:width='data:width' style='display: block'/>
</a>
Replace it with this optimized Code
<!--Header Tags Optimized Code by MBT-->
<b:if cond='data:blog.pageType == "index"'>
<h1 itemprop='name'><a expr:href='data:blog.homepageUrl' itemprop='url' style='display: block'>
<img expr:alt='data:title' expr:height='data:height' expr:id='data:widget.instanceId + "_headerimg"' expr:src='data:sourceUrl' expr:width='data:width' itemprop='logo' style='display: block'/><span>My Blogger Tricks</span></a>
</h1><b:elseif cond='data:blog.pageType == "archive"'/>
<h1 itemprop='name'><a expr:href='data:blog.homepageUrl' itemprop='url' style='display: block'>
<img expr:alt='data:title' expr:height='data:height' expr:id='data:widget.instanceId + "_headerimg"' expr:src='data:sourceUrl' expr:width='data:width' itemprop='logo' style='display: block'/><span>My Blogger Tricks</span></a>
</h1>
<b:else/>
<h2 itemprop='name'><a expr:href='data:blog.homepageUrl' style='display: block'>
<img itemprop='logo' expr:alt='data:title' expr:height='data:height' expr:id='data:widget.instanceId + "_headerimg"' expr:src='data:sourceUrl' expr:width='data:width' style='display: block'/><span>My Blogger Tricks</span></a></h2> </b:if>
- In the code above replace My Blogger Tricks with your Blog title
5 Finally search for this code <!--No header image -->
Below it you will find the following code:
<div class='titlewrapper'>
<h1 class='title'>
<b:include name='title'/>
</h1>
</div>
Replace it with this optimized code:
<!--Header Tags Optimized Code by MBT-->
<div class='titlewrapper'>
<b:if cond='data:blog.pageType == "index"'>
<h1 class='title'>
<b:include name='title'/>
</h1><b:elseif cond='data:blog.pageType == "archive"'/>
<b:if cond='data:blog.pageType == "index"'>
<h1 class='title'>
<b:include name='title'/>
</h1>
<b:else/>
<h2 class='title'> <b:include name='title'/></h2>
</b:if> </b:if>
</div>
6 Save your template and you are all done!
Customize the Header Tags
Since we have added H1 and H2 tags to the Blog Title, therefore you may now add some styles to them so that your Blog title may not look ugly. Since the CSS classes may differ for custom templates and blogger official templates. Therefore I am sharing below the technique for Blogger Template designer templates only. Though you can ask me for correct classes of your custom templates by leaving a comment below.
Note: Your template may not contain #header but it may contain .header, if it does then replace all css IDs that begin with (#) below with (.). i.e. Replace all #header with .header
For Condition#1 Make these changes
Find this CSS class
#header h1 {
Replace it with this
#header h1, #header h2 {
Next find this
#header h1 a {
Replace it with this
#header h1 a,#header h2 a {
For Condition#2 Make these changes
Add the following CSS class just above ]]></b:skin>
#header h1 a,#header h2 a, #header h1 a:visited, #header h2 a:visited{color:#fff; font-size:10px;text-decoration:none;margin:0;padding:0}
.header h1 span, #header h2 span{text-indent:-999em; display:block;}
That simple!
Need Help?
I know the above tutorial may sound a little too technical for some but do not hesitate trying it out and let me know for any help needed. I will try to reply within 24 hours. This change will significantly improve your blog rankings and appearance in search results.
If you don't want to get yourself into Serious Technical Trouble while editing your Blog Template then just sit back and relax and let us do the Job for you at a fairly reasonable cost. Submit your order details by Clicking Here »
Great tip!!
ReplyDeleteHI, its a great help, i have updated html as suggested, just confused last step ]]> to use # or . kindly clarify.
Deleteaoa
ReplyDeletesir apkay btaye huay codes replace karnay ke bad mere header me header-image ke sath sath header-title as text bhi show honay lag giya hai, which looks odd, plz help me as i only want to show image in header instead of title as text. thanks.
here is my url http://apkmania-news.blogspot.com/
Please add the following code just above ]]></b:skin> inside your template
Delete.header h1 a,.header h2 a, .header h1 a:visited, .header h2 a:visited, .header a, .header a:visited{color:transparent;font-size:0px;text-indent:-9999em;line-height: 0;text-decoration:none;margin:0;padding:0}
it worked like a charm, thank you so much sir.
DeleteRamzan I have made some changes to the code above. Please instead use this code and delete the previous
Delete.header h1 a,.header h2 a, .header h1 a:visited, .header h2 a:visited{color:#fff; font-size:10px;text-decoration:none;margin:0;padding:0}
.header h1 span, .header h2 span{text-indent:-999em; display:block;}
I have updated the code in Step#4. Please add it again with the new code. The change I made was enclosing the Blog Title inside Span tags. So please update the code shared in step#4
Hi Mohammad ,
ReplyDeleteusing font-size=0px to hide text isn't bad for SEO?
I am asking just for curiosity!
You are right Nik that is surely not a recommended practice. I had accidentally added font-size:0. I have removed it now. We will instead use text-indent property to hide the text which goes in accordance with Google Webmaster policies.
DeleteMohammad after your reply I change font_size=0px with text-indent code but now I see text .What is wrong
DeleteUrl is www.ntsotsos.gr
Assalamu Alikum Mohammad!
DeleteMy problem is about CSS class. I didn't find any class like it " #header h1 a { " in my blog template. Could you please say something about it?
Thanks for sharing your info. I really appreciate your efforts and I will be waiting for your further write ups thanks once again.
ReplyDeleteA.O.A Mohammad Bro,
ReplyDeleteYou said right that this is the first tutorial about this topic. Some days ago I was searching for it on Google but I didn't find anything satisfactory. Anyway, I got help from your Forum but still I don't satisfy with my blogger template.
Please Suggest me 1 or 2 templates which should be responsive, 100% SEO friendly and beautiful. My blog is moderntipstricks.com.
I am glad you found the tutorial so useful Wasil. Buddy no template is 100% SEO friendly and attractive unless you make it so. You may choose any template you want and then optimize it by reading the tutorials on mbt
DeleteOK, I've changed my whole template and now when I try optimize headings by using your optimized codes; some codes work but the others do not. Please open my blog source code and find that what the problem is?
DeleteHi
ReplyDeleteI use the simple template. There is no div id='header' tag, only div id='header-inner'
Where do I put the first code?
Thanks :)
try to find as tutorial says
DeleteHey Xistis, I found the same which you have and replaced
Deletediv id='header-inner' instead of div id='header it worked good.
Hi, i cant find any of the codes you mentioned on my blog. Does this work with all templates?
ReplyDeleteMy blog is androidtipster.com
bro ..I'm not able to find id='header'> or .. what i am getting is
ReplyDelete1. id='header-wrapper'> and
2. id='header-inside'>and
3. id='header-inner'>or
4.
sir what should i do to implement this
I'm facing the same issue
DeleteUse
Deletediv id='header-inner'
Brother's find insted of div id???
DeleteGo to replace the code said by MBT
Guys it working fine with my blog..i am not facing any issue with the codes
ReplyDeleteNice tweak bro
ReplyDeleteBut one question does hiding text cause seo problem
He Bro Could not find div id='header'>
ReplyDeleteand header> plz help me i wanna optimize my blog ProTrick.net
I have not yet applied the code but i guess it will work, was searching for this particular issue on youtube but i found it here thanks man :). Nice work.
ReplyDeletehello mbt,
ReplyDeleteI can't find < div id='header'> nor what i am suposed to do? please help.
kind regards
Hi Paulo,
DeleteFind instead and replace it with
Hope it works !
It worked! Although, there is no div id=header in the template but div id=header-inner works fine. Also, i have to add an additional /b:if tag at the bottom of the customize "No Header Image" before it things are in place.
ReplyDeleteHowever, the template in mentioned is custom template not Google owns template so i can't customize the header tags. Can you pls peep at the site and help me with the custom header tag i can use? The site in mentioned is CCN thanks.
In your case find this code for part3:
Delete<div class="header section section" id="header">
and then add inside it these schema attributes:
itemscope='itemscope' itemtype='http://schema.org/Organization'
Hi, Is there any way someone could do this for me? I am really struggling...
ReplyDeleteSure! connect with me I'll try. or you can ask owner of this blog to do for you.
DeleteHi,
ReplyDeleteI would like to implement your tutorial which I was looking for. But, unfortunately I could not find both code [div id='header] and [header] in my template. I am using a custom blogger template. What should I do to implement your tips.
Regards.
I tried visiting your site "http://www.bloggingwatch.com/" but it is not responding so could not help :)
DeleteThanks for the article , its so hard to find blogspot help online.
ReplyDeleteIm seeing this as a common problem in the comments but has anyone found a solution. I dont have the div id='header or ... only inner and inside and wrapper. Any tips? Thanks in Advance
I could easily find this code inside your template: http://mountaintopchef.blogspot.com/
Delete<div class="section" id="header">
Note: You can also add it inside the header-inner div section too.
my home page post titles are h2
Deletemy post page titles are h1
Thanks Mohammad for the reply but i've been searching for ages and still dont see div class="section" id="header"
I was going to use header-inner instead.
However there are 3 of them: ALL showing that its , h1
Yet my HOME PAGE in seo checks still shows the titles as h2
????
Thanks so so so very much, your help is much appreciated.
I do what you said in this post. But after applying your tricks my blog header is not showing on the post pages but it is visble in the home page.
ReplyDeleteKindly provide suitable solution.
I visited your site "http://netwrkusa.blogspot.com/" but the header looks just fine. Can you please attach a screenshot here
DeleteI have tried this on my second blog it worked fine but when I tried this on my main blog which runs sora mag template it keeps both logo and blog title which makes my blog look clumsy. Can you please check on that?
ReplyDeleteHi Mohammad, i follow that step. I change like your step and my blog title gone. Whats wrong? i'm not use title image. Please tell me, whats wrong
ReplyDeleteKindly mention your blog url buddy so that I could inspect and help.
DeleteSorry, I forgot to write it. This is a my test template. After using step 5, the title of the blog post does not appear in the page
Deletehttp://cyberfirefly.blogspot.co.id/
fadly I visited your blog. The title is working on homepage but not showing on item pages i.e. Posts. The title div is empty which means you might have forgotten copying the full code from part#5. The last part of the code is missing which is:
Delete<h2 class='title'> <b:include name='title'/></h2>
Please repeat step#5 and let me know
I follow all of your step but not working. I tried to change <b:elseif cond='data:blog.pageType == "archive"'/> with <b:else/>
Delete<b:if cond='data:blog.pageType == "archive"'/> and it appeared. my step is right?
What if i pasted the code below tag?
ReplyDeleteDear Mustafa,
DeleteAfter applying your tricks my header image and drop down menu bar have a increased space between please help.
Hello.
ReplyDeleteI added all the code as shown, however my header image has moved and now text has appeared behind it and moved my pages. Any help?
Hi..
ReplyDeleteDirectly below my blog still has div id='header-inner'
What should I do with it?
Thanks
Still showing "The h1 tag is missing."
ReplyDeleteThe img tag does not have an ALT attribute defined. I have my own header image.
Did everything, still get the H1 error in Bing's SEO analyzer :-)
ReplyDeleteI have followed the steps. But when i check to my H1 in http://www.whatsmyserp.com/, it is still blank, H1 is still blank....how could it happen?
ReplyDeleteVery difficult to do in custom blogger template. I could not able to do that :(
ReplyDeleteyou are the best one
ReplyDeleteI could not find div id='header'
ReplyDeleteSalam Mustafa,
DeleteI think having so much h2 tags of post titles as well as widget titles can be result in decrease of SEO score please suggest something. And i am talking about homepage.
Hi bro,
ReplyDeleteI have tried entering your code in my blog.I tested it by right clicking the blog post name in the index page and inspect.But the blog title is enclosed within H3 only. Please help. My blog 'https://victimrecession.blogspot.in/2009/03/voice-of-victim-current-business-slow.html'
my case is #2
ReplyDeleteused picture logo as header. However, I can't find code
or
what should I do?
H1 still showing in bing webmaster even I replace the div id='header-inner' to the code in step 3, my site is http://www.nuggetro.info/
ReplyDeleteIn my case there are 2 code for div id='header-inner', do i need to replace this two code with the code in step 3
ReplyDeleteI can't find any of the code that you are referencing in my blog. Will you please help? www.boreidesign.com
ReplyDeleteNever mind, I got it!! Thank you so, so, much! This is the first tutorial I've found on this issue that actually works.
ReplyDeleteI do have one additional question though. It appears that my H2 settings are still pointing to my side bar widget titles?If I want to assign my post titles to H2 instead, how would I do that and should I for seo?
hi mohammad,
ReplyDeletei am facing difficulty in optimising h1 tag...
i searched by html template of blogger whose url is www.instamag.in and found "div id='header" 2 times...totally confused...plz help me out how to fix it. waiting for ur reply.
I didn’t find either of this code on my html template code…
ReplyDelete1. div id='header'
2. header
Plz help me out. My url is www.instamag.in
Hello Mohammad Bro,
ReplyDeleteI tried following your method to 100% exact, it works BUT it is also showing in all the pages together with POST TITLE. If you can please take 2 mins to check and help me I will appreciate it alot.
www.technospire.xyz
Hi I Am a Newbie and am getting errors could you please take a look if done correctly Thankyou so much my blog is https://forrenttoownhomes.blogspot.co.uk would be much appreciated if you can help
ReplyDeleteThanks. It's works on new blogger template.
ReplyDeleteHi, Thanks for this SEO tip. I used this and fixed the heading tags error in my blog!
ReplyDeleteThanks for the help. This will surely help get my posts ranked better.
Regards!
Thanks a lot man, my seo jumped to %85 score. Keep up the good work guys, god bless
ReplyDeleteApplied all that you mentioned accordingly, to success. But when I view my page source, I still have a nonsense gadget having the 1 and only h1 tag. My post title doesn't even have any tag.
ReplyDeletePlease help me out. My blog url is easymadeblog.com for confirmation.
Thanks
Sir,
ReplyDeleteI am using a custom blogger template named "Activo". I don't know if the developer had used H1,H2,H3 tags properly. If you don't mind, please check my template here: http://www.droidphoria.com
Thank you in Advance
Hello,
ReplyDeleteMy H1 tag is missing. I tried to find the div id='header' or . can you please help me.
my blog address: www.edujosh.com
Great help, with the help i did changes in html for H1, just one question in note you ask to replace # with . and after that customised condition1 and condition2 again you have given replacement with #. Is that also be taken as . instead of #. above css ]]>
ReplyDeleteplease clarify. my question is about last two solution css id
Hi Mohammad Mustafa Ahmedzai,
ReplyDeletefirst of thanks for helping in need, i am facing issue if change the width of the web all tricks used to handle h1 issue, gets disturbed and have to put it again any reason for change,pls advice on same. also suggest steps to be taken care while changing the template.
Regards,