How to fix threaded comments and the reply button on Blogger comments

A few people have emailed me about having issues with replying to comments on their blog, after resolving their issues with the reply button I realised that maybe a lot more people are having this problem too so thought I’d write up a tutorial on how to fix it. This can be complicated if you aren’t used to editing HTML so please take your time and read the instructions very carefully! If you are still having problems with this I am available to hire here.


1. Enable Threaded Comments

We need to make sure that your blog is set up for threaded comments first and make sure the settings are correct. Go to Settings > Other > Site Feed. For Allow Blog Feed, choose Custom and set Pre-Post Comment Feed to Full. Now go to Settings > Posts and Comments and set Comment Location to Embedded.


2. Adding or Fixing Reply Option

Go to Template > Edit HTML. Select Jump to Widget > Blog1 and find the following line

<b:widget id='Blog1' locked='true' title='Blog Posts' type='Blog'/>

Change Blog1 to Blog2. This will remove the corrupted gadget and revert it so it is functioning properly again. If you are using an older version of Blogger, it may ask if you wish to delete this gadget, say yes. Save Template.

3. Replace threaded script

If that doesn’t fix the reply button, then try this method. Go to Template > Edit HTML. Select Jump to Widget > Blog1 or Blog2. Under <b:widget id='Blog1' locked='true' title='Blog Posts' type='Blog'/> or <b:widget id='Blog2' locked='true' title='Blog Posts' type='Blog'/> you will see the following code

<b:includable id='threaded_comment_js' var='post'>

Click the black arrow beside the numbering on the left for the line <b:includable id='threaded_comment_js' var='post'>...</b:includable> and the full nested code will appear.

Delete this entire code, from <b:includable id='threaded_comment_js' var='post'> to </b:includable>. In it’s place, paste the following

<b:includable id='threaded_comment_js' var='post'>
<script async='async' expr:src='data:post.commentSrc' type='text/javascript'/>
<script type='text/javascript'>
(function() {
var items = <data:post.commentJso/>;
var msgs = <data:post.commentMsgs/>;
var config = <data:post.commentConfig/>;
// <![CDATA[
var cursor = null;
if (items && items.length > 0) {
cursor = parseInt(items[items.length - 1].timestamp) + 1;
var bodyFromEntry = function(entry) {
if ($extendedProperty) {
for (var k in$extendedProperty) {
if ($extendedProperty[k].name == 'blogger.contentRemoved') {
return '<span class="deleted-comment">' + entry.content.$t + '</span>';
return entry.content.$t;
var parse = function(data) {
cursor = null;
var comments = [];
if (data && data.feed && data.feed.entry) {
for (var i = 0, entry; entry = data.feed.entry[i]; i++) {
var comment = {};
// comment ID, parsed out of the original id format
var id = /blog-(d+).post-(d+)/.exec($t); = id ? id[2] : null;
comment.body = bodyFromEntry(entry);
comment.timestamp = Date.parse(entry.published.$t) + '';
if ( && === Array) {
var auth =[0];
if (auth) { = {
name: ( ?$t : undefined),
profileUrl: (auth.uri ? auth.uri.$t : undefined),
avatarUrl: ($image ?$image.src : undefined)
if ( {
if ([2]) { = comment.permalink =[2].href;
if ([3]) {
var pid = /.*comments/default/(d+)?.*/.exec([3].href);
if (pid && pid[1]) {
comment.parentId = pid[1];
comment.deleteclass = 'item-control blog-admin';
if ($extendedProperty) {
for (var k in$extendedProperty) {
if ($extendedProperty[k].name == 'blogger.itemClass') {
comment.deleteclass += ' ' +$extendedProperty[k].value;
return comments;
var paginator = function(callback) {
if (hasMore()) {
var url = config.feed + '?alt=json&v=2&orderby=published&reverse=false&max-results=50';
if (cursor) {
url += '&published-min=' + new Date(cursor).toISOString();
window.bloggercomments = function(data) {
var parsed = parse(data);
cursor = parsed.length < 50 ? null
: parseInt(parsed[parsed.length - 1].timestamp) + 1
window.bloggercomments = null;
url += '&callback=bloggercomments';
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
var hasMore = function() {
return !!cursor;
var getMeta = function(key, comment) {
if ('iswriter' == key) {
var matches = !!
&& == config.authorName
&& == config.authorUrl;
return matches ? 'true' : '';
} else if ('deletelink' == key) {
return config.baseUri + '/delete-comment.g?blogID='
+ config.blogId + '&postID=' +;
} else if ('deleteclass' == key) {
return comment.deleteclass;
return '';
var replybox = null;
var replyUrlParts = null;
var replyParent = undefined;
var onReply = function(commentId, domId) {
if (replybox == null) {
// lazily cache replybox, and adjust to suit this style:
replybox = document.getElementById('comment-editor');
if (replybox != null) {
replybox.height = '250px'; = 'block';
replyUrlParts = replybox.src.split('#');
if (replybox && (commentId !== replyParent)) {
document.getElementById(domId).insertBefore(replybox, null);
replybox.src = replyUrlParts[0]
+ (commentId ? '&parentID=' + commentId : '')
+ '#' + replyUrlParts[1];
replyParent = commentId;
var hash = (window.location.hash || '#').substring(1);
var startThread, targetComment;
if (/^comment-form_/.test(hash)) {
startThread = hash.substring('comment-form_'.length);
} else if (/^c[0-9]+$/.test(hash)) {
targetComment = hash.substring(1);
// Configure commenting API:
var configJso = {
'maxDepth': config.maxThreadDepth
var provider = {
'id': config.postId,
'data': items,
'loadNext': paginator,
'hasMore': hasMore,
'getMeta': getMeta,
'onReply': onReply,
'rendered': true,
'initComment': targetComment,
'initReplyThread': startThread,
'config': configJso,
'messages': msgs
var render = function() {
if ( && {
var holder = document.getElementById('comment-holder');, provider);
// render now, or queue to render when library loads:
if ( && {
} else { = || {}; = || {}; = || [];;
// ]]>

Save the template and refresh your browsers cache.

4. Replace all threaded code

If the above fixes aren’t working the best thing to do is replace the scripts altogether. This will work 99.9% of the time but it needs to be done correctly. Setup a test blog with the simple template (or the same default Blogger template your blog uses). Go into Template > Edit HTML. Select Jump to Widget > Blog1. Further down under this you’ll see the following

<b:includable id='threaded-comment-form' var='post'> ... </b:includable>
<b:includable id='threaded_comment_js' var='post'> ... </b:includable>
<b:includable id='threaded_comments' var='post'> ... </b:includable>

They are nested, meaning that if you click the arrow on the left that the ... part will expand to show the rest of the code. You’ll need to copy the entire thing for all three parts and add/replace it to your real blog in the same area which is usually under <b:includable id='status-message'> ... </b:includable>. This can be difficult if you aren’t used to HTML or Bloggers HTML editor, so take your time and be careful.

5. Have a third party template? Contact original designer / developer

As I mentioned step 4 will work 99.9% of the time, but it may not work if you have a custom built template which does not use Bloggers default code (note that this is different to a customised Blogger template). If you have tried the above steps correctly without any luck and do have a custom built template then my advice is to contact the designer/developer. The information will usually be in the footer of your template.

6. Still having issues?

Get in touch here to hire me to fix it for you.

Related Posts

New Blogger comment system & other changes.
Backup your entire blog on blogger or wordpress – template, images and posts.
Restore your blog backup.
How to find code in HTML Editor.
Understand CSS and Bloggers Template.


I am so glad you have done this post because the minute I started blogging my reply button never worked and when I switched it to another layout it did so I realised it was todo with my HTML. All I could find on Google was the first opinion which obviously didn’t help. im rubbish with HTML but I will try this… Suppose what happens when you download a free blog design online aha x

Let me know how you get on. Yeah I see it a lot especially with bloggers who decide to do blog designs, not all of them know how to properly code, just got to be careful 🙂 xx

Ahhh I’m struggling to fix this as I can’t find the html codes :/

Is there any chance you can help me? Or take a look on my blog and see whats the reason why – if you go on my comments and click reply nothing happens 🙁
It’s been bugging me for ages and I just got a new design so I thought it would be solved but it hasn’t 🙁

Hello, if it is missing altogether you could try adding it to that section yourself. If you aren’t comfortable in doing this, I can do it for you if you send me an email. Let me know x

Hi Ellie,
I think you may be the answer to all my woes (well this particular one anyway)!
I’m having the same problem as Shaz de Vos above. I did everything you said above and still no luck. Any chance you could have a look and help me out 🙂

No problem! I’ve accepted. Can you go back into Settings > Permissions and change “author” to “admin” beside my name. This will give me access to your template.

Hello. I notice your template is a custom built one, because of this the code for threaded comments is probably missing altogether. My advice is to set up a test blog, go into template > edit html > format template > jump to widget > blog1 > click the black arrow on the left to open it and copy the last three lines of it. It will look something like

<b:includable id='threaded-comment-form' var='post'> ... </b:includable>
<b:includable id='threaded_comment_js' var='post'> ... </b:includable>
<b:includable id='threaded_comments' var='post'> ... </b:includable>

There will be extra code in between the pink dots () so make sure to copy the entire thing. Then go back to your blog and paste it in the same location. This will add the functionality for threaded comments to your blog. You may have to then follow this tutorial to fix it.

People were telling me that they were having some difficulties commenting on my blog. I thought I solved this issue last night..but then this morning, I wasn’t able to reply to their comments.

I followed the steps you laid out here and I’m so glad to have it working again. Thanks so much for doing this!

It seems like this problem has cropped up for me overnight on two of my blogs. I tried both of your suggested fixes on one but still can’t seem to get it working 🙁 I’m pretty sure I followed the instructions properly, so not sure why it’s not working.

Hi Ellie, I too am having the problem whereby the ‘reply’ button is missing in my comments. My blog layout is from another website which I copied and pasted, but don’t have a clue when it comes to HTML web design etc. Is there anyway you can help?

I tried to search for within my HTML, but couldn’t find it?

Thank you for any help you can offer.

Laura xx

Hello, your template is an original Blogger template with some customisations from another site, this shouldn’t affect the template code although the reply to comments code may not be there. HTML is not allowed in the comments so I can’t see what part you are having trouble finding. Please paste it into the box on this site, press encode and paste the result in a reply to this comment. Selecting Jump to Widget should bring you to the place you need, but if you are still having trouble check out this post which explains how to find code in the HTML editor.

Thank you for the advice. I have finally managed to get the reply button back on my site by clicking on the ‘revert widget templates to default’ and selecting ‘Blog 1’, phew!!

Laura x

I have been messing around with this over and over and cannot get it to work. I assume it has something to do with the coding, I bought the template as a premade design. I would really appreciate a little insight on to why my blog is so screwy 🙁

Hello, if the above fixes aren’t working the best thing to do is replace the scripts altogether. Setup a test blog with the simple template. Go into Template > Edit HTML. Select Jump to Widget > Blog1. Further down under this you’ll see <b:includable id='threaded-comment-form' var='post'> ... </b:includable>
<b:includable id='threaded_comment_js' var='post'> ... </b:includable>
<b:includable id='threaded_comments' var='post'> ... </b:includable>
. They are nested, meaning that if you click the arrow on the left that the ... part will expand to show code. You’ll need to copy the entire thing and add/replace it to your real blog in the same area.

Hello! Sorry about the delay, I’ve accept the invite. Can you go back to settings and change author to admin beside my email address, this gives me access to your template 🙂 thank you!

Hello! I am so frustrated with my reply button, there is no reply at all for my comments. I scoured google for days and was able to actually find HTML that added a reply link but the link was broken and didn’t work! HELP! Are you possibly able to take a look at my blog template? Thank you for any help you can offer.

It seems like everytime I come accross a problem, you have a solution! I tried all the above scenarios but unfortunately none worked. At least the way they were laid out. In the 4th option, what I ended up doing was copy completely the “Blog1” line in the Edit section from my other blog, and replace it in my current blog. It solved the problem 😀 Thank you again for your suggestions and all the good tips and tricks you share with us!

Hi Ellie,

I’ve been trying to fix mine for 2 days now. I did everything you shared on this blog and I still can’t reply to my blog comments 🙁

Hoping you can help me out. Thank you!

Hello! Thank you so much for this article. Unfortunately, I, too, tried all the fixes and nothing worked. Any suggestions?

I recently tried to instal Disqus comments. I couldn’t figure it out. Worse, my comments have been dysfunctional since then.

I’ll check out your support page now.

Method 4 should work as you are replacing or re-aading the code for threaded comments. It can be very difficult but make sure you are copying all three scripts and everything that is included in them and then placing them in the correct place in your blog. You can contact me via the support page if you’re still having problems.

Hello, it’s a little different and slightly confusing unless you know what you’re looking for because there is code for share buttons there shown as <b:includable id='shareButtons' var='post'>...</b:includable> which is what I presume you tried editing? This is actually just the function code, the actual code for the placement of share buttons are in the post footer and this is the code you need to add/replace. First go to Layout > Blog Post > Edit and turn on the share buttons. Then follow this tutorial to move/add them to your post footer. In that tutorial I use the post labels as an example, instead you’ll be using the following –

<div class='post-share-buttons goog-inline-block'>
<b:if cond='data:post.sharePostUrl'>
<b:include data='post' name='shareButtons'/>

In method 4 I have to replace all the threaded code, right? But I replace them for what? For the big code you gave to use with ” ” ?
That big code made a certain difference, because it placed the “rules for commenting” above the comment box (it was under before I tried the code).

I followed your instructions all the way through #4. However after I saved the template and went back in, those 3 lines of code had just re-nested. I didn’t know what else to do. Any other suggestions?

Hello. They typically will re-nest, but the full code will still be there. That’s just Blogger’s way of organising/cleaning up the code. You don’t have a reply link at all in your comments, can you re-check step 1?

Add **** to your Blogger permissions under settings and I’ll take a look for you, can’t see that code without being signed in 🙂

Sorry had some internet connection problems. I’ve accepted the invite, can you go back to the settings and change “author” beside my name/email to “admin”. This gives me access to your template code.

Hello. I had a look and because your template is a custom one it uses slightly different code to Bloggers default. I can fix it to include the reply function but you’ll need to reapply the styling to the comment area. Let me know what you think.

Perfect, it’s working again and I added some of the styling back to it. I’ve emailed you the template backup incase you want to revert to how to was 🙂

Hi. I did number 4. I replaced all 3 with the code you gave but it still won’t work. I am kinda new to all these html stuff and I don’t know what else to do.
I changed my codes back since I can’t seem to make anything work. Help me please. Thank you.

Hello! Firstly what a lovely blog, your outfits are gorgeous. I had a look at your template and it’s one that I was referring to in step 5. It’s been custom built so it’s likely that the reply button has been coded out completely which means the above fixes won’t work. If you want to read over the advice in step 5 and then contact me here I can fix it for you.

As mentioned in step 5, my advice is to contact the designer/developer of the template. Or if you would rather not do that, you can contact me here to look at re-coding your existing template to include the reply button.

I guess I’ll just have to contact her. I was hoping I could solve this problem on my own but obviously I can’t. Thank you for your help though.

Thank you so much for this guide. I had to replace all threaded code to get my replies to work, but it was worth it. Wouldn’t have known what to do without this post. 🙂

Hi Ellie,

I am having trouble with the codes and replacing them and don’t want to screw it up even more. Anyway you can take a look at it? I am unable to reply to anyone. I included you into the reader list.




This was something that was bothering me for ages. Kind of like when you know you need to sew a button on a shirt but, chose to wear a different shirt for about 6 months before just sitting down and doing it!
I feel so relieved that I can now reply to my readers, now they won’t think I’m ignoring them!

I did every step that you mentioned, but I ended up having to create a new test blog to get the fresh code. I think I was stuffing around with it so much that I’d forgotten what I’d changed/deleted and modified!


-Olivia Gumienny.

Hello Olivia, glad you got it sorted. Sometimes replacing the code is the best step, sets it back to default and then you know the code is clean from errors. You are very welcome, happy to help 🙂

Oh, I am SO excited!! This tutorial worked 😀 Thank you SO SO SO much! That little reply link has been bugging my sisters and I on our blog, and now it’s fixed! What an obvious thing to just copy the code from an un-edited template and paste it in… duh ;P You are absolutely awesome!


Is there any way you would be able to take a look at my code and see what is missing, in order to be able to reply? I hit the reply button, but nothing happens. I have messed with this code way too much and am worried to start replacing things lol.

You’re brilliant! Thank you so much! You’ve helped me a lot. I’ve just started my blog and I’m looking for things to make it better. Your blog is the most helpful one I found.

I’m ready to rip my hair out literally lol

I tried following the instructions and it just wont work, i don’t know what i am doing wrong, i am horribly challenged when it comes to this html stuff…

There is no option to reply to people who comment on my blog. i have no options whatsoever..

Hello Samantha, are you using a custom template – one that isn’t from Bloggers selection or a Blogger template that has been customised? A lot of third party templates remove this option for some reason, it will have to be recoded into your template.

Hello, nothing I can do from here as I can’t see the code. You are using a third party template so would be best to check with the original developer.

Hey Elaine,hope you are good. I need your help in fixing reply button to my blogger comments.When i followed the Step 3, the reply button appears on my blog but it’s not functioning.Then i moved to Step 4 but this time my blog is not saving the changes in my template,even it is not showing any HTML code error.

Hey Fatima, I’m afraid I don’t provide support for third party templates which yours is. You could get in touch with the original developer and see if they are able to help.

hi. I hope you can help me. i’ll try to find at step 3 but what it appeared was so, how i can change this? and i found that i couldn’t make my blog’s comment into threaded comment 🙁 i hope you can solve my problem. Thank you 🙂

This post is a life savor for me. You have no idea how much you helped me. I always had an issue of how to fix threaded comments but no problems from now on.

Oh my goodness, can I just just a huge THANK YOU for helping me with this. Incredulously (for me) it worked the first time by simple removing blog1. You have literally saved me today. 🙂

I tried the instructions for all the threaded code sections, but it didn’t help. The funny thing is that I’ve had the blog from 2009 and only years later did I notice that there is actually a reply button in the mobile version – it just doesn’t exist in the not-mobile version. As my blog isn’t that super active, I didn’t care enough at first, but actually it would be really good to get that fixed. Having it on mobile and not having it on desktop is almost worse than not having it at all.

Any extra tips?