Showing posts with label blogging. Show all posts
Showing posts with label blogging. Show all posts

Fix for Responsive Design of Blogger Designer Template

It is very Important to know that Designer templates like Popular "Simple Template", has no Wrapper element in their CSS, so it is futile to look into the solutions offered using them at many places. Also, You won't be able to detect and use css elements via Google Chrome or Mozilla Firefox element inspectors, for what has been rendered. I would discuss important issues only.

Problem with hyperlinks, Landing on different Page Or Home Page

Many bloggers are using mobile template which has in built feature to append the urls with ?m=1, forcing the browser to open mobile version of the page. However, it creates its own problems. Instead of writing ?m=1 at the end of url, it writes something like example.com/?m=1..... resulting into, you being landed upon the Home Page instead of the page you wanted to land on.

To fix it, find this piece of code

if (screen.width <= 699) { document.location = "/?m=1"; }

in your template and replace it with:

if (screen.width <= 699) { document.location = document.URL + '?m=1'; }

Responsive Design without using Mobile Templates:

Many Bloggers have come out with solutions about this issue. Most of them are using wrappers and containers for resizing according to device width. However many templates including this one (Simple), I am using don't have wrappers. Good news is in fact these templates are Responsive by default. You don't need to write many media queries parameters for different width sizes. Just a very simple tweak does the trick. Simply, find the following code in your template:


body {
min-width: $(content.width);
}
.content-outer, .content-fauxcolumn-outer, .region-inner {
min-width: $(content.width)
max-width: $(content.width)
_width: $(content.width)
}

Change it to:

body {
min-width: $(device.width);
}
.content-outer, .content-fauxcolumn-outer, .region-inner {
min-width: $(device.width)
max-width: $(device.width)
_width: $(device.width)

With this simple tweak, you get the Responsive Design which adjusts according to the device width and you don't need to do anything. After doing it, you get the desired dynamic width adjustment and only other thing is to make your other size elements Fluid. Fluid means simply remove static size elements in pixel and start writing in percentage term. (PS: Although it is a good starting point to make your template responsive, keep experimenting till you have fixed every issue with responsiveness).

I've added following piece of code to limit the width of the blog,spreading too far. Just find .content-inner in CSS, and alter it like this:

.content-inner {
padding: 10px;
margin: 0 150px 0 150px;
}

.

Also, add a little piece of code like this one in CSS:

@media all and (max-width: 900px){

.content-inner , .columns {width:100%; margin-left:0 !important;margin-right:0 !important;}
#header-right {float:left}
#crosscol {
width: 80%;
}


Implementing all the above, You would exactly have website like mine. I need to work on Header and footer too. So, it is still not right time for saying Goodbye to the mobile template.

After coding for responsiveness, you may opt out of mobile template version of your blog. You will get a single Responsive Version of CSS which is compatible across every device. Cheers!

Read This >>

Guest Posting on this blog: How to get Published ?

I have got a few queries regarding possibility of publishing on Netargument as Guest Poster. This blog is about 5 years old. However, the objective and seriousness of blogging, blame it on me, has many different phases, which with time has become my blogging policy. I will brief you about my publishing policies, and why they exist. As a Guest Blogger, you too should observe them, to a higher degree!

  1. If you can't tell who You are, I can't go ahead with you

    I have never done anonymous blogging. In fact I hate it. I want to see your public profile. I want to know who you are before reading your work. if, you have created a profile with confusing pseudonym on some social portal or you are not willing to share your real identity, I won't even take the pain of reading what you write. You must brief about yourself. I know everybody doesn't have a personal blog, but I think everybody who wants to write do have a public profile, from where i can judge who you are in your real life.

  2. Original Content is required, even if someone may call it funny

    I have always tried to post original content. If you don't have something unique in your post, then it is not worth sharing. I know original contents sometimes sounds funny and bizarre to someone, but I am OK with that. Let the vibration of your mind and heart come out in your writing. Good writers don't create contents focusing on words alone, they pass on their mental and emotional juice in their writing, and till you decide to start doing it, no matter however poor it may seem initially, you can not attract and entertain a bigger audience at any point of time. It is better to start doing it late than never, if you dream to be in that order.

  3. I love hyperlinks, but they should not be Yours only

    If you have gone through my writings, you must have seen how generous I am with referring to others' work, wherever it makes sense. Let me tell you I have generously given link to people and products. I was never paid for doing that. I expect the same spirit, while you submit your work. Don't ever try to hide the credit of Original Authors from where you have learnt, and don't ever try to paraphrase someone else's work as your own. I know some people manage to rank above the original writers on google, simply building upon their work for some keywords. It is not because of some google's algorithm, it is because of ethics of writing.

  4. Don't Try to use the privilege to Please or Displease Your Boss

    Earlier, Blogging was part of my hobby. I was not serious about it. I used to write anything, I wanted to write. Slowly, I noticed, this has stared giving me reactions in real life. I never promoted it, but people around me started reading and discussing it without my knowledge. So much, that at one point of time, I had even to explain my postings. No, I had to delete many of them. I was employed with some organization, then, and the person asking for it, did it in a really nice manner. Everything went smoothly, and nobody was hurt in the end, I still have a lot of respect for him. It was the end of a chapter. I learnt a lesson on accountability. You may be hurting someone, even if your intention is not to do so. So, be extra careful, because, You may not get the chance to get it deleted, once it gets posted here, and You may not be fortunate like me! I would only ask you to learn from my own experience. If, you are employed with some organization, please don't submit your love, hate, rave or rant about its product or culture.

  5. Don't Offer me Money for Publishing, I rather want to pay people for writing here

    I want money! I want to build this blog as one of the topmost blog in its niche. I need a lot of writers, but I don't want writers who would rather pay me for posting what they write here. I must also tell you, I too have passed through the phases of temptation to write paid posts. In fact, I was about to accept an offer of regular paid postings on this blog. Thanks to the response from a person, who wrote these words,

    "We are happy to hear that you are interested. What we are looking to do is guest blog on site like yours. We will provide you fresh content written by our professionals. Posts could be about clothing, fashion, eyewear, sports like wakeboarding, snowboarding, climbing, surfing, skateboarding, etc. We would be able to pay( as per your website Page Rank) per post with 2 permanent do follow links. The post frequency will be 2-3 a week depending on what is available if you are interested, more or less is always an option depending on what you would like. We have many partners always looking to guest blog, and we have a few that would go well with your blog and your audience, would that be something that you would be interested in doing?

    How we determine what to pay:
    PR 1- $5 per post
    PR 2- $10 per post
    PR 3- $15 per post
    And so forth....

    Also, as your PR goes up so does the payment for future post.... let me know what you decide..."

    Now, You know what I decided, I don't want to kill this blog for narrow gains, I want to make it real big!


Read This >>

10 Blog Post Layout Tips, for Better Reading and Engagement!

Your Blog Posts may have better engagement, If you adhere to the following tested methods for better Readability!

  1. Line Length should be between 500-600 pixels. We have large size, screens nowadays, especially desktops, which has widescreens. Still, the 500-600 px limit is the best width for your post size. 

  2. The ideal ratio between, Post space and sidebar is 5:3. This ratio has been considered sacred for millenniums and has been used in the creation of great artistic pieces, and it still works best. I am using it for a long time and recommend you to use it, if you don't have any other idea.

  3. The length of a paragraph should be around 300 characters, for better scan-ability. It is roughly around 5 lines. You should think of a para break after every 5-6 lines. More than 7 is Long! 

  4.  If you write the first Text of the post in bold, and increase its relative size, it increases the depth of the visit.

  5. Margin or white spaces should be smooth and even all around the post.

  6. White Spaces between two elements increases the attention towards them. Just have a look at the top header and footer of this blog. It is just like a creature in sea would try to find an island on either side. White spaces acts like sea water!

  7. If post looks crumpled, increase the line gap height, anywhere between 1.3 to 1.5

  8. A Light Background color in text area enhances the duration of the visit.

  9.  If you end your post at the mid of the Line Length, it increases the engagement with post footer.

  10. Don't implement more than 3 tips in one go in your blog, because it is not Single Size Fits All. Every blog is different & requires some deviations from the norm!

Read This >>

Facebook Open Graph Fix- Known Issues Solved !

facebook_open_graph
Facebook Liked Description on Timeline

I had thought of writing on this topic for a long time. However, web is already filled with open graph documentations, so, I would only discuss the troubleshooting part, which you can easily implement, and has not been discussed earlier.

  1. Meta Tag inside body

    Remove all the meta tags inside <body>....</body> in your template. Sometimes, you add them to fix some problems as a short cut method. However, this is a very bad practice. Even, Schema.org documentation recommends adding them in some cases, but, you should preferably avoid adding a meta tag which is something like, <meta...../>, outside </head> of your blog or website.

  2. Website Logo not showing.

    You know facebook requires pictures of high quality, in specified size and formats. However, you can easily avoid all these hassles by simply uploading the Logo as Facebook Fan Page Logo and just right click there, copy the image url and use the URL in open graph, like, <meta content='http://profile.ak.fbcdn.net/hprofile-ak-snc4/276570_154982213146_6949695_q.jpg' property='og:image'/>

  3. Author Description is Weird.

    Here too Author Description for Blog should be like: <meta content='Author Description URL' property='article:author'/>. If you use About page of your blog or website. It will show as Author:About, on facebook, and hover card too would look blank and weird. If you create a page with different title, even then, hover card wouldn't show description. To avoid hassles, here too use the Facebook profile page url, like <meta content='http://www.facebook.com/rameshbook' property='article:author'/>, and everything gets fixed!

  4. Website name not showing in "liked" or "shared".

    You are missing an app id. create a facebook app, and give it your website's name, add the app id meta tag, like, <meta content='your app id' property='fb:app_id'/>, soon the liked article would show, "Liked on Your App Name", like, "liked on Netargument".

  5. Facebook not reading the corrected tags and using the old one.

    It takes time, but you can get it corrected if you want in no time, simply visit this url and put your page url. This will update facebook servers, and your description will start showing according to fresh tags.

Read This >>

Breadcrumb with Navigation for More Pageviews

Breadcrumbs are trails of webpages in a website that you have browsed, shown mostly on the top of the pages for better back and forth navigation.

Breadcrumb_Blogpost_webpage
Breadcrumb with Post Navigation

In blogger we use Labels as Breadcrumb, which though are not true breadcrumb, we just show the crosss linkage of pages across Labels. Since, labels themselves may no be cross linked, it is advised to show only one of them, to avoid any possible penalty.

Here, I would be giving you a code which not only shows breadcrumb on your blog post but also, has an embedded Newer post, older Post Navigation on the top, that sits seamlessly on the top of your blogger post. Check this post for Live Demo, and play with it to learn how it functions.


First, add the following code into the CSS of your blogger template:

.breadcrumbs{border-bottom:1px solid #E7E7E7;
font: 8px "Lucida Sans Unicode","Lucida Grande",sans-serif;}.charfix {
 font-size:130%; line-height:0; } 



Then find the below code in your template,

<b:include data='top' name='status-message'/>

Immediately above that paste this code:

<b:include data='posts' name='breadcrumb'/>

Now Find, the Following code in your template:

<b:includable id='main' var='top'>


There may be two places of the above code. If it occurs once, paste the below code (Modified form of Anish's Code) just above it. If twice, then paste below code above second one:

<b:includable id='breadcrumb' var='posts'>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType == &quot;static_page&quot;'>
<div class='breadcrumbs'><span><a expr:href='data:blog.homepageUrl' rel='tag'>Home</a></span> &#187; <span><data:blog.pageName/></span></div>
<b:else/>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<!-- breadcrumb for the post page -->
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.labels'>
<div style='display:inline'><span class='breadcrumbs' xmlns:v='http://rdf.data-vocabulary.org/#'>
<span typeof='v:Breadcrumb'><a expr:href='data:blog.homepageUrl' property='v:title' rel='v:url'>Home</a></span>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.isLast == &quot;true&quot;'>
 &#187; <span typeof='v:Breadcrumb'><a expr:href='data:label.url' property='v:title' rel='v:url'><data:label.name/></a></span>
</b:if>
</b:loop>
 &#187; <span><data:post.title/></span>
    </span><b:if cond='data:newerPageUrl'><b:if cond='data:olderPageUrl'>
    
      <a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-older-link&quot;' expr:title='data:olderPageTitle'><span id='blog-pager-older-link'><span class='Charfix'>&#9668;</span>  </span></a>
    
    </b:if>
    
      <a class='blog-pager-newer-link' expr:href='data:newerPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' expr:title='data:newerPageTitle'><span id='blog-pager-newer-link' style='float:right'><data:newerPageTitle/><span class='Charfix'>&#9658;</span>  </span> </a>
     </b:if></div>
<b:else/>
<div class='breadcrumbs'><span><a expr:href='data:blog.homepageUrl' rel='tag'>Home</a></span> &#187; <span>Unlabelled</span> &#187; <span><data:post.title/></span></div>
</b:if>
</b:loop>
<b:else/>
<b:if cond='data:blog.pageType == &quot;archive&quot;'>
<!-- breadcrumb for the label archive page and search pages.. -->
<div class='breadcrumbs'>
<span><a expr:href='data:blog.homepageUrl'>Home</a></span> &#187; <span>Archives for <data:blog.pageName/></span>
</div>
<b:else/>
<b:if cond='data:blog.pageType == &quot;index&quot;'>
<div class='breadcrumbs'>
<b:if cond='data:blog.pageName == &quot;&quot;'>
<span><a expr:href='data:blog.homepageUrl'>Home</a></span> &#187; <span>All posts</span>
<b:else/>
<span><a expr:href='data:blog.homepageUrl'>Home</a></span> &#187; <span>Posts filed under <data:blog.pageName/></span>
</b:if>
</div>
</b:if>
</b:if>
</b:if>
</b:if>
</b:if>
</b:includable>

Save it, and again add or overwrite the existing CSS for the New Post, old post link, preferably through Add CSS feature of your blog:

#blog-pager-older-link, #blog-pager-newer-link, #home-link{background:#DDDDDD; border:double;padding:1px;display:inline-block;font-size:9px;}

Save, the template & check, how it looks like on post pages. You will find something like, one shown in the image of this blog.


(Note, This blogpost may not show the Navigation, till it is the newest post. For Checking how it functions and live demo, check an older post)
Read This >>

Simplified Schema formatting of content for Search Rich Snippet & Adwords

Many microdata(microformats), formats like RDFa were brought forth by different sources working in different directions for structuring data on the webpage. Google, Yahoo & MSN came together to formulate a universal categorization language on the web. Their Joint collaboration is schema.org convention of tagging information, which can be easily mastered, applied and understood by Search Engines & webmasters.

RDFa has been a popular way of Data Structuring for a long time now. After the adoption of RDfa open graph by Facebook and RDFa goodrelations for ecommerce, it has become a popular convention. However, with all major search engines announcing the transition towards Schema.org, it is better to talk about schema only.

Schema taxonomy relies on hierarchical structuring of data along the attributes, itemscope, itemtype & itemprop. There are few other attributes which are of lesser importance, like itemid. We shall concentrate on the most important ones only, here.

Itemscope, is the signal to search robots that the container where it is present, contains some data of interest to them which are structured according to the schema.org convention. Like, if the <div itemscope..... is encountered, it expects itemtype data to know what is the subject of the structured data. Whether, it is person, profession, organisation.... Here, comes the role of the attribute itemtype. So, the container div now should give the information about the kind of data expected within it. The attribute itemtype, refers to a particular url for this purpose. If the data contained is of a person, then itemtype should refer to schema.org/Person, if the data is of a professional service. It should refer to schema.org/ProfessionalService. So, our div container may look like,
< div itemscope itemtype="schema.org/Person"
<div itemscope itemtype="schema.org/ProfessionalService"
OR, if I want it to remain composite and split the div into two spans containing, personal and professional informations, then, I would go like this:

<div > <span itemscope itemtype="schema.org/Person"
<span itemprop="....."
<span....... Data about person
........
/span>
<span itemscope itemtype="schema.org/ProfessionalService"
<span itemprop="......"
<span....... Data about Professional Service
/span></div>

The above is a div container that contains both kind of information. Important point here is that, You can write only those values of itemprop, which are present on the itemtype referred schema url. So, just go there and pick them for marking. It is itemprop, which tells search robots, what the container contains. It may be name, nick, job-title, organization.....


So, if I write about myself, the structured data would look like:

<div class="profile"> <span itemscope itemtype="http://schema.org/Person">
<span itemproperty="name"> Ramesh Kumar</span> is a
 <span itemproperty="job-title"
>Google Adwords Qualified Professional</span> 
at <span itemproperty="affiliation">Netargument</span>
</span>.
<span itemscope itemtype="http://schema.org/ProfessionalService">
<span itemproperty="logo"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNinMGO7o9iRlFm7p0ZExxC9GpiCPUuRVxyc1owTbC8ADKMBZ20ciPGQcQFK_S8SyCD9JGj0FBvFQ4czCOHKhsEHHqofMs-aOzFyuYbzDJNIjlS_T78dFja_1PzvH_fDGbuOulOy-ZPSQ/s144/logo_qualified_ind_500.jpg"/></span></span></div>

Search Engine will interpret this data as,
Name: Ramesh Kumar, job-title: Google Adwords ...... Working at: Netargument. Logo:  image URL.


job, organization name in rich snippet
Rich Snippet showing Job-title and Org, appearing in Google Custom Search 

Here, if I don't use itemtype="/ProfessionalService", then , I may not have been able to use "logo" attribute and may have been using "photo" as itemprop, which would confuse the bots that the image is my pic. Two spans prevent this situation.


Similarly, you may mark up an offer within a product div, like

<div itemscope itemtype="http://schema.org/Product"><span itemprop="brand">........<span itemprop="offers"></span></span></div> 


The markups are not limited to search snippets only. The new Offer Extension in Adwords too are rumored to work through it.


Warning: Image-url is not a valid itemproperty, Blogger Template Error![Solved]

Please note, blogger's default template contains itemprop="image-url", because of which you may get error in rich snippet tool, wherever you have hyper-linked images. This itemprop value is wrong, you should change all such values to itemprop="image". This will solve the problem.

Note: In the Examples, above, I have broken the divs into span, which is actually an styling element. You can use any element like, <p>, <a> or even nested div, depending on the situation. However, I personally avoid nested divs, because of SEO reasons. 
Read This >>

Breadcrumbs in Google Search may mean Bye to Fake Display URLs in Adwords!

Despite warnings by many SEO experts, I finally decided to use Breadcrumbs on netargument.

Blogger has labels already present, which can be used as breadcrumb. There are many tweaks of original Hoctro's code for implementing it on your blogger blog. It is using the last label of the post, though one may show many on your blog. After implementation, the domain name in SERP becomes unclickable & Label shown becomes clickable and lands you to the label list url. It does take away url keyword bolding effect from your search snippet, but what is visible there is more pleasant than the irritating URL string. So, it actually has the potential of enhancing your domain branding!

Now, after implementing Breadcrumbs code on the blog or website, label management becomes important. Labels are important for generating default #Hashtags on twitter too, if you share your blog through feedburner service. Here first label is most important. I am going to arrange the labels in the order of increasing relevance. The most broader category first and the most specific one in the last. Like

L1>L2>L3, where L2,L3 are subsets of L1 and L3 is the subset of L2. In this way L3 is the most specific tag for the post and L1, L2 are broader categories. I've seen people displaying many tags in rich snippet, but that is not a good practice, because, if on clicking those tags, which I believe has intentionally been generated to make it look like matching the search query, your plan may backfire. So, I advise you to keep it limited to the most specific last post label. Shouldn't blogger too replace the comma with '>' !!

Having said that, I also think, google adwords Display URL feature, where advertiser can write anything after Top level Domain, need to be retired. It might even be on Google's To-Do List. These Display URLs has been thoroughly abused for keyword stuffing, mobile no. insertion....  It creates a huge gap between what you see and what you get after landing, which may not prove to be good in the long run for either Google or the advertiser. With time people learn to ignore the Domain name in ad, & behavior may extend to ignoring Adwords ads in SERP in future, because you are giving them reasons for distrust. Substitution of Fake URL String, with Breadcrumbs should be better for both the website branding and usability, because the person seeing the ad would know, it is Breadcrumb which is not the part of actual URL, rather something that should be present on the landing page & that will be good, for Adwords!
Read This >>

Blog SEO 2013 – Optimize All the Signals You send to Search Engines

Search Engines’ frequent algorithm changes have inculcated us to look for many new signals that are either proven or are suspected to impact SEO of your website. Some of which you might have experienced in your webpage rankings.
  1. Content Originality Signal

    Use of original content in your website is paramount for your SEO success. Particularly, Google is capable of judging the originality of the content and help the most original content rise up.  Avoid borrowed sentences, phrases or dubious paraphrasing. Google can detect!
  2. Author Reputation Signal

    Who is the writer and in which field she commands readership, determines the weightage. Tell the Search Engines, who you are, by linking to all important Social Media profiles, on the webpage. Use the (unofficial) tag   “rel=me” to tell them it is you, and let them determine your authority vis a vis the subject. This tag really helps!
  3. Social Sharing Signal

    How much the content has been shared on the social media platforms like, twitter, google plus, facebook, linkedin etc., matters in ranking of your website. Optimize the website and content for sharing. More Share & Participation means Better Rank!
  4. Genuine Anchor text Signal

    All the anchor texts used in linking should match the context. Avoid using same or similar texts as anchor at different places, they count nothing. Better, diversify the content of the anchor text, if you can’t do more justice to the link.
  5. Your Nick Signal

    This is observed by many, yet some confirmation from Gurus is due. Search Engines have learnt how you are referred to in comments and forums. So, if someone talks about “netargument”, “SEOmoz” search engines can detect without any need of hyperlink to whom they are referring to, and they give them due credit. Incredible! Get an original & unique nick so that you are not deprived of this credit because of confusion.
  6. Quality Link Signal

    You must send signals to the Search Engines that you have external links on quality websites. All Natural Looking Content and context counts. If you want to get rid of some inferior websites that links to you, use google’s Disavow Tool inside Webmaster Tools, to tell them you don’t want them to count those links.
Read This >>

Blogger internal link development, for better SEO and rank–Make your post rank higher!

For those who are unaware of how links matter in ranking on Google I will first brief how linking impacts SERP. Links are one of the most important factor which decides how your page will rank on Google. If you get a link from a page which already ranks higher in SERP, Google treats it as a vote, and your site too start ranking well for the keyword term and gets a strong boost on related terms. This is 1st link. If you don’t get first link, try getting links from pages which links to already well ranking websites, this is second link. It goes on and you get benefits in decreasing order depending on kind of link you get. Google respects your link depending on the subject of the post, site and its niche.

Good for you if some well ranking website has linked to your posts. However, you may also leverage your own website’s pages which ranks well and it does not reduce the benefits in anyway.

If you have been reading this blog for a long time you might have noticed I sometimes give you 3-5 reading suggestions in the end of posts. They are for SEO reasons. They are of course good for enhancing pageviews too! Experimenting with the internal links on blog I have learnt some best practices for such kind of link building which I would be sharing with you in this blog post.

  1. First of all make a list of posts which are ranking well for some keywords and related ones you wish to target.
  2. Now use your own custom search engine powered by Google which looks into the content of your site only and search for terms there, like: adwords resellers, adwords certified etc.
  3. Now, copy the headlines from there only. This will ensure the searched terms are highlighted with bold or italicized tags! This step is important because, highlighted terms gives you extra thrust in ranking well & Google understands that they are more important than rest of the phrases.
  4. Now go the posts where you want to paste this link. The posts should be well ranking for a reasonably good period of time before you burden them with these new links. Paste the links in the bottom of the posts. Keep it limited to 3-5 posts only. 
  5. You should ensure that links and post content are related.
  6. Links which are posted together also signals to Google that they are somewhat related in content and deserves a better treatment, so What kind of links you paste there matters including the bundle you create there.

For better understanding just read few posts which are using this technique, like:

Read This >>

Internet Explorer, IE9 IE8, XSS, cross site scripting message (error). [Solved] for blogger!

Netargument use Disqus as Commenting system on this blog. In internet explorer browsers, IE8 & IE9, it failed to load with message that Internet Explorer has modified this page to prevent cross-site posting. It display # where disqus is placed and fails to load!

The error is due to Internet Explorer’s XSS filter, which prevents the injected script from accessing information which other website doesn’t intend to allow. However, an application like disqus does the same thing and we want to do it, and IE should understand that it is intended and not a malicious attack!

Microsoft documentation about this XSS filter tells you how to disable it at server level and end user level. End user can disable this by opting out of it in setting, but that is not something which a publisher can force upon them. Those having access to root directory too can disable it by tweaking HTTP header request setting

X-XSS-Protection: 0

Blogger doesn’t offer you access to the root directory, so the solution won’t work for you.

However, we can send request to turn it off through a meta tag. It tells the browser to turn off XSS-filter, and it works!

Just find the below code in your blogger template, going to Edit HTML.

<meta content='IE=EmulateIE7' http-equiv='X-UA-Compatible'/>

and change it to:

<meta addname=' X-XSS-Protection:0' content='IE=edge' http-equiv='X-UA-Compatible'/>

This code also changes the compatibility of your website from IE7 to the latest version.

This code will not only solve your website’s cross scripting error, but also make it run smoothly in latest versions of IE.

Read This >>

Blogger AddThis Gadget with Facebook Like & Twitter button positioning!

I was a big fan of ShareThis. For years, it served pretty well on my blog. It offers a bunch of buttons which are very easy to use. Once you paste the Javascript of sharethis in the template, things are very easy to add. It offers definite advantage in terms of customizability and usability, but it has some very serious drawbacks in the long run. It slows down your website through a bunch of tracking cookies. Recently I found whenever the page loads it send call to scorecardresearch.com, which is a third party cookie! Another drawback is, it uses sh.es url shortner for publishing the shared page. It might be a permanent redirect, but I was taken aback when I found pages shared on facebook which displayed netargument.com below the post title, changed to sh.es after sometimes. So, my trust was broken and I completely pulled out all the codes of sharethis from this website. Whenever, installing any third party sharing button one must check: 1) How it impacts speed of your website; 2) The kind of url shortner it uses. Sharethis lost on both!
Addthis is part of Blogger’s gadget library and so you may trust them. They always use your actual url for sharing & if you add it via gadget library, you don’t need to put any Java code in your template, they are taken care of by Google’s server. So you are safe here, from SEO point of view. Links used to be the most important aspect of SEO, but now it is the Speed of your website! Faster and having better on site clickstream data goes higher on Google.
First of all go to gadgets library of blogger and find addthis gadget, by simply going to Page element page. Choose show facebook like and twitter button. If you also want to get rid of Facebook’s Java SDK & Twitter’s Java code from your template, choose none in sharing icon option. They will let you use FB like & tweet button on your website without any need of having codes. If you wish you may even remove twitter and facebook codes to further enhance the performance of your website.
Let us go step by step on How to do it.:
  1. Go to Page element page and click on Add an element
  2. Go to More Gadgets and find Addthis via search there.
  3. Go to next page and check: Show Facebook & Twitter buttons
  4. Next choose “none” from dropdown menu next to Show Icon option.
  5. If you don’t want Add This written on the top of the widget, simply make it blank and Save.

Positioning the buttons

The above steps will add the gadget to the page element box. Now drag the element to just below the Post area. Save arrangement and  click edit once again. Expand the box and note its widget ID, from the top address bar.
Now open the template HTML editor, tick expand the widget option on the top, Ctrl F  to find the widget ID.  Select the line including the widget ID and everything above <b:include name='quickedit'/>. Replace it with the one written below, putting your widget ID at the colored place:

<b:widget id='WRITE YOUR WIDGET ID HERE' locked='false' title='' type='Gadget'>
<b:includable id='main'> 
<b:if cond='data:blog.pageType == &quot;item&quot;'>
  <!-- only display title if it's non-empty -->
  <b:if cond='data:renderingUrl != &quot;&quot;'>
    <b:if cond='data:title != &quot;&quot;'>
      <h2 class='title'><data:title/></h2>
    </b:if>
    <b:if cond='data:gadgetSnippet != &quot;&quot;'>
       <data:gadgetSnippet/>
    <b:else/>
      <div class='widget-content'>
        <b:if cond='data:nonSocialFragment != &quot;&quot;'>
          <data:nonSocialFragment/>
        </b:if>
      </div>
    </b:if>
  <b:else/>
    <data:errorMessage/>
  </b:if></b:if>
Now the buttons will only appear on the blog post page. To further customize it where it should appear on the page. Use the following code, and add it to Add CSS of your blog via Template Designer. The following code will place it at left hand side bottom of the blog post, like the one shown on this page.
#WRITE YOUR WIDGET ID HERE {
position:fixed;
left:0px;
top:625px;
}
If you want to place it near blog post headline, choose this code and adjust the attributes.
#WRITE YOUR WIDGET ID HERE {
position:absolute;
left:  px;
top:  px;
}
If you want to place it near Footer, use this code and adjust the pixel values

#WRITE YOUR WIDGET ID HERE {
position:absolute;
left: px;
bottom: px;
}

For vertical alignment, add:
width:130px;
within the curly bracket in any of the codes.
Read This >>

Warning: Missing required field "updated" in Blogger Rich Snippet Webmaster Tool [Solved]

missing required field updated blogger   Google Search

While testing Rich Snippet for blogger posts in rich snippet testing tool inside Google Webmaster Tools, I found Warning:Missing required field “updated” problem.

A lot of bloggers have advocated deleting hfeed and hentry fields to solve this problem. This indeed solves the problem, however, deleting a field whose function you don’t fully know may become the starting point of the unknown problems. So, I started exploring it further. Blogger gives you by default “published” timestamp field. A simple tweak of this gives the desired solution. Just find the following piece of code:

<a class='timestamp-link' expr:href='data:post.url' rel='bookmark' title='permanent link'><abbr class='published' expr:title='data:post.timestampISO8601'><data:post.timestamp/></abbr></a>

Copy it on a notepad and simply change the class value at two places, like this:
<a class='updated' expr:href='data:post.url' rel='bookmark' title='permanent link'><abbr class='updated' expr:title='data:post.timestampISO8601'><data:post.timestamp/></abbr></a>

Now put the above code inside a div with display setting to none, like this:
<div style='display:none’><a class='updated' expr:href='data:post.url' rel='bookmark' title='permanent link'><abbr class='updated' expr:title='data:post.timestampISO8601'><data:post.timestamp/></abbr></a></div>.

Put the above code anywhere in the body part of the template, maybe just below the “published” field. Save the template and now test again inside the rich snippet tool in Webmaster tools. Warning is Gone!

P.S.----> On 15th of March, 2012, Google updated its Rich snippet guidelines and has mentioned anything inside a “display:none” won’t be considered. So, you should find a place to show it to the readers of the blog too, and remove the <div style=’display:none’> from above including the closing </div> for rich snippet to work properly.

NOTE: – Since, so many people are facing problem implementing it, I am giving you the code which you can simply copy and paste. If you have author & timestamp on the top, use this code in footer just like me and if you have default code in footer, use it on the top below the headline. This code will end all your trouble regarding, rich snippet. Just copy & paste. Wish you good luck!
<a expr:href='data:post.authorProfileUrl' rel='author' title='author profile'>
                        <span class='post-author vcard' itemprop='name'>
        <b:if cond='data:top.showAuthor'>
          <data:top.authorLabel/>
          <span class='fn'><data:post.author/></span>
        </b:if>
      </span>
                      </a><a class='updated' expr:href='data:post.url' rel='bookmark' title='permanent link'><abbr class='updated' expr:title='data:post.timestampISO8601'> <data:post.timestamp/></abbr></a>

Note 2:--- To determine the position of the code, simply look for <data:post.body/>. This code actually is Your Blog Post. If you post any code above it, it will appear above your blogpost. If you post below it, it will appear below the post body. In addition you have default footer-1, footer-2….. in your template. You may choose any position. Hope this information will help you in determining where to show the “updated field code”. Just keep in mind the aesthetic value of the blog.



Recommended:

  1. Simplified Schema formatting of content for Search Rich Snippet & Adwords
  2. 10 important things to do immediately after starting a BlogSpot blog
  3. 10 Ways to Quickly reduce the Bounce Rate on Landing Page
Read This >>

Web Comments: Strategy, Etiquettes and Future for Publishers and Contributors.

Comments on a webpage are like a magical mirror, which everybody want to snatch from others to see her own face, but in the end owner snatches it away for herself, by force, and makes a movie out of it.

A fantastic reality of internet is that every page is only as much credible as the owner of the webpage and fortunately vice versa too. So, knowing one helps knowing the other, and you will fail to see otherwise. If you are regularly commenting on different websites, you should be able to shortlist some trustworthy ones. The mirror analogy works everywhere, the only difference is whether the owner is a Dog, Monkey or some other creature like you or me! Since, web is mostly dominated by curators and hoovers, originality is a rare encounter for lucky few. Advent of Social Networking and messaging platform has made everyone a frequent commenter on multiple issues resulting into an unending quest for attention across various platforms. So the viral tide will surely strike you once in a while, tempting for a deep plunge into the sea. So, be prepared for the inevitable because you are going to make or break your reputation.

There are some good practices, which quite honestly I would tell you only the best people are seen practicing, but others like us must give it a try:

  1. Your politeness is the most lethal weapon against all the odds that may come across you, while seeing comments across the web. So, try never to lose it.
  2. Add wit and sarcasm but not abuses, even when others are throwing mud on you.
  3. Be Original and just say what you feel and agree with, no need to seek support from others. You will find more support in this way, rather than by asking for it. People support you because of attraction and appeal you create there.
  4. Don’t try to have the last word. People trying to do so can be easily identified, and they don’t make any real impact, though they always think they are making great impact. You must leave a discussion beyond a point.

These will make you Smart, while commenting:

  1. If you comment according to the way discussion is moving forward, always look at the discussion and wait till you can read mood of the crowd and gently change the direction.
  2. Bring some authentic source to sound credible. Link to a good video or a reputed authority on the web. People coming back after visiting the link will respect you, if you sounded genuine.
  3. Give a personal touch and anecdote in your comment. Address the author, so that he may remember you, next time you visit.
  4. Always comment through your public profile. Twitter or Facebook are best, it helps people know you better and also helps in creating better impact. Those who comment through guest profile or a dedicated commenting profile are taken as dishonest and the ones who run away throwing a stone on others.

For publishers the best strategy is one which facilitates a good discussion on the topic. some of the good practices are:

  1. Allow for the Popular log in platform. Twitter and facebook login are a sort of norm these days.
  2. Install a commenting System which allows simultaneous posting on different Social media platforms. It helps get more people and sharing.
  3. Moderation is a dirty word. If you are moderating, announce it categorically, What kind of comments are removed and published. Keep it minimal and open. You should never look like doing something to slant the public view.
  4. Selectively publishing comments to favor the author’s version of the story is criminal, and big publishers doing so will surely lose credibility and audience over a period of time. You are not the only place where people can comment, there are several other platforms and if comment on your page is not in sync with that at other place, people can easily sense the scam.

Future of comments on the web:  Some of the websites have stopped accepting comments on their webpages. People comment on twitter, facebook  or other places about them. So, you can’t address their audience, you can only address your own audience about them. It is good for publishers whose subject is highly technical or the audience participation may only increase the noise there. I see noise reduction as the major challenge that need to be addressed through a proper commenting system. People moderate but that takes away the credibility of the web page. Amount of conversation happening on twitter and facebook may completely take away the comments from the webpage. It is highly likely that webpages in future would rather allow you an easy peek into the web reactions as social proof and author or fan may access them and respond to them easily, from anywhere. 

Read This >>

Wikipedia: The New Age Porn Magazine!

“But I heard it is an encyclopedia!”.

You heard right, but that is how every Porn site, who are serious about their business masks themselves. Didn’t Jimbo tell you his Bomis.com was actually somewhat adult in content and not porn! In a typical wikipedia style I would first define what is porn, before arriving at any kind of judgement. As per dictionary.com

obscene writings, drawings, photographs, or the like, especially those having little or no artistic merit.

:::Ramesh, you got it wrong here! It says “having little or no artistic merit” but wikipedia has immense artistic value. You should first get your perception of art right. When you search Michael Arrington on google the first link is wikipedia article on him, which tells you The Fucking incidence of his life at great length. Had it been porn our elder brother Google would not have indexed it at all. So, your perception is entirely wrong, because what is art can’t be called Porn. See, how we Wikipedian, promoted an obscure Yahoo CEO, through a high traffic page. But, you should know We never accept ads on our site.

The page you are showing, has messed all the information about him. It rather discusses things of fringe value to the reader and omits many notable facts. Is this what one should know before knowing the basic facts about him. My take on the entire article is that someone is deliberately trying to make a villain out of a hero.

:::You know, anybody can edit this Wikipedia. so, if you feel something is wrong you are welcome to edit this page. Though, you should take care, we have editors already involved there, so, you should not add anything with which they disagree. Move by consensus, otherwise we have admins who can block you. We greatly value neutral point of view.

First of all, You must know, I was searching for information about him. So, my position is Knowledge Seeker, how I can provide knowledge about something which I myself don’t know. Are all your editors too similar kind of Seekers who have become providers. Second point is How can I have consensus with people with whom I clearly disagree, and they frequently quote hyperlinked rules which they themselves keep on violating.

:::You see nobody knows anything perfectly, and for anything you don’t know you should Google. Google and Wikipedia goes hand in hand. Google always shows Wikipedia in the first position, which contains all the information that other 9 links below can provide you. So, we do a great service by consolidating all the information from every poor website that ranks below us, but we do take care that our editors write it in their own language, and they do mix their own expert knowledge in them. Your second point can be answered in this way that We also have a rule that allows us to break all the rules. So, whereas a newbie like you should observe all the rules, a veteran there is above every rule. You know most of them are admins or enjoy the protection of an admin.

In other words are you telling me that you have Cabals there, and all your articles are outcome of their bias and prejudices, which also somehow maligns the original authors you guy cite.

::: Everybody hates someone, and they get delighted to see something bad written about someone on the top page served by Google. That motivates them to contribute more to our site, and also show it to others. These people get complete security under the cover of anonymity, and with time they grow up as our admins. So, what they cannot write anywhere else, they can write here. Since, they also know something about other topics like science and philosophy, they contribute there too. In this way we have grown into such a big website. We have cabals

I think you qualify as a porn site and not as an encyclopedia. Porn too delight people and are shared with similar intent, but is a recognized social evil.

::: See you cannot come up with such claim without a reliable source. You either find a forum of your choice or get a blog. As I told you, we do not fit into the description of porn, per the dictionary definition, because we all are so artful. Our founder Jimmy Wales is hailed as a Spiritual Leader.

I have a blog and I am fully responsible for everything I write here. You too dare to sign your work. You may not entirely fit into Porn category, but you are a very close extension of what pornography is, a kind of New Age Porn.

Read This >>

10 important things to do immediately after starting a BlogSpot blog


10 things that will supercharge your blog. Immediately, after starting your blogspot blog, you require some customization, which gives it professional look and also helps it perform well on search engines.
  1. Remove/Hide the Top Blogger bar.

    Add the Following line of code by going to Edit HTML (Expand Widget):       
    #navbar-iframe{height:0px; visibility:hidden; display:none}
    body{ margin-top:0px;  position:relative;  top:2px}
    which should look like this after adding the code:
    <b:skin><![CDATA[/*
    -----------------------------------------------
    Blogger Template Style
    Name:     Simple
        
    ----------------------------------------------- */
    #navbar-iframe{height:0px; visibility:hidden; display:none}
    body{ margin-top:0px;  position:relative;  top:2px}
  2. Split the Header into two columns

    . Although, blogger has launched many designer templates, none till date, has split header by default. So, you need to insert extra section in Header to get two column headers. Two column header helps you insert extra widget in that area. Find the following code, by going to edit HTML in your blogger control panel, leaving Expand option unticked:                                                                                                  <b:section class='header' id='header' maxwidgets='1'showaddelement='no'>.                      Just after </b:section>, insert the following code:         
    <b:section id='header-right' showaddelement='yes'/>
    <div style='clear: both;'/>                                                 


    Now Find the    ]]></b:skin>    and add the following line of code just before it:
    #header {width:20%;display:inline-block;float:left;}
    #header-right {width:80%;display:inline-block;float:right;padding:0px;}
    #header-right .widget {margin:0;}


    After saving the template, go to add page element, choose the image only option, and insert Logo in Header Left, and description or Adsense in header right column.  Here, for those who have opted for image only option in Header, need to tweak the template again. So, go back to edit HTML, and, find below code: 



    <!--Show the image only-->
          <div id='header-inner'>
            <a expr:href='data:blog.homepageUrl' style='display: block'>
              <img expr:alt='data:title' expr:height='data:height' expr:id='data:widget.instanceId + &quot;_headerimg&quot;' expr:src='data:sourceUrl' expr:width='data:width' style='display: block'/>
            </a>      Replace this code with one given below:

    <!--Show the image only-->
          <div id='header-inner'>
            <a expr:href='data:blog.homepageUrl' style='display: block'>
              <img expr:alt='data:title' expr:height='data:height' expr:id='data:widget.instanceId + &quot;_headerimg&quot;' expr:src='data:sourceUrl' expr:width='data:width' style='display: block'/>
            </a><div class='titlewrapper' style='display:none'>
            <h1 class='title'>
              <b:include name='title'/>
            </h1>
          </div> 
  3. Change Post Title tag to write search engine friendly headlines

    .
    Blogger, by default has Blog Title, into header description. it reduces the real estate of first 150 characters, which are of so importance these days. Your important, headlines goes with blog title to all important services updates, including your posts’ Search engine description.  Just go to Edit HTML, and find <data:blog.pageTitle/>. Replace it with the following line of code: <b:if cond='data:blog.pageType == &quot;index&quot;'>
    <title><data:blog.title/></title>
    <b:else/>
    <title><data:blog.pageName/></title>
    </b:if>
  4. Show more posts on home page. SEO the archives


    Read this/Expand the post feature also, indexes your archived pages by April, May, June… Which helps Search engines to index it in this way. To automatically get the post thumbnails on your home page, copy & paste the following code, just after the </head> tag in your template:                                                                                                          <script type='text/javascript'>
    var thumbnail_mode = &quot;yes&quot;; //yes -with thumbnail, no -no thumbnail
    summary_noimg = 430; //summary length when no image
    summary_img = 340; //summary length when with image
    img_thumb_height = 125;
    img_thumb_width = 150;
    </script>
    <script type='text/javascript'>
    //<![CDATA[
    function removeHtmlTag(strx,chop){
        if(strx.indexOf("<")!=-1)
        {
            var s = strx.split("<");
            for(var i=0;i<s.length;i++){
                if(s[i].indexOf(">")!=-1){
                    s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length);
                }
            }
            strx =  s.join("");
        }
        chop = (chop < strx.length-1) ? chop : strx.length-2;
        while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++;
        strx = strx.substring(0,chop-1);
        return strx+'...';
    } function createSummaryAndThumb(pID){
        var div = document.getElementById(pID);
        var imgtag = "";
        var img = div.getElementsByTagName("img");
        var summ = summary_noimg;
            if(thumbnail_mode == "yes") {
        if(img.length>=1) {   
            imgtag = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="'+img[0].src+'" width="'+img_thumb_width+'px" height="'+img_thumb_height+'px"/></span>';
            summ = summary_img;
        }
        }
        var summary = imgtag + '<div align=justify>' + removeHtmlTag(div.innerHTML,summ) + '</div>';
        div.innerHTML = summary;
    }
    //]]>
    </script>                                                                                                     After this save the template, tick the expand widget option and find <data:post.body/>, in your template. Replace this line with the following code:                               <!—Netargument.com Read This code Start --><b:if cond='data:blog.pageType == &quot;static_page&quot;'>
    <data:post.body/><b:else/>
    <div expr:id='&quot;summary&quot; + data:post.id'>
    <data:post.body/>
    </div><script type='text/javascript'>
    createSummaryAndThumb(&quot;summary<data:post.id/>&quot;);</script>
    <div style='clear: both;'/>
    <span class='rmlink' style='float:right;padding-top:5px;'><a expr:href='data:post.url'><b>Read This &gt;&gt;</b></a></span></b:if></b:if>                                                 <!—Netargument.com Read This code End –>                                                                                                          Now, Preview and Save the template. This will create thumbnail of posts on home page, labels and archives. This also helps search engines index your archives by months like March, April…
  5. Insert Meta tags for home page and other pages.


    Use of conditional tags to help the search engines, index the pages, and prevent content duplicate listings. To help search engines index your blog by proper keywords and descriptions, you should write meta tags for home page. Just copy the meta tags from below, alter it suitably and paste after <head> in your template:                                                                                                   <b:if cond='data:blog.url == data:blog.homepageUrl'>
    <meta content=' DESCRIBE YOUR BLOG HERE AS YOU WANT TO APPEAR ON SEARCH PAGES ' name='description'/></b:if>
    <meta content='WRITE 8-10 KEYWORDS HERE RELEVANT TO YOUR BLOG' name='keywords'/>                                                                                       If you want to write Description for other pages too, simply add this code:                                                                                                           <b:if cond='data:blog.url == &quot;WRITE YOUR POST/PAGE URL HEREquot;'><meta content='DESCRIBE THE CONTENT OF THE PAGE' name='description'/></b:if>
  6. Change default comment permalink.


    Blogger default comment permalink adds “?’ attribute to the page url with comment id in post url. Google will then see as an issue of duplicate title tag. To avoid this, you need to change the ‘?’ attribute to “#”. This can be achieved by replacing the default code which is like this: <a expr:href='&quot;#comment-&quot; + data:comment.id' title='comment permalink'> <data:comment.timestamp/>                                                                                                                                               to this one:             <b:if cond='data:post.commentPagingRequired'>


      <a expr:href='data:comment.url' title='comment permalink'> <data.comment.timestamp/> </a>


    <b:else/>


      <a expr:href='data:blog.url + &quot;#&quot; + data:comment.anchorName' title='comment permalink'> <data:comment.timestamp/> </a>


    </b:if>
  7. Bottom Page number for posts, archives and labels.


    Insert the code  just before </b:skin> in your template:                                                                                                         .showpageNum a {
    text-decoration:none;
    border: 1px solid #ccc;
    margin:0 3px;
    padding:3px;
    }
    .showpageNum a:hover {
    border: 1px solid #ccc;
    background-color:#ccc;
    }
    .showpagePoint {
    color:#333;
    text-decoration:none;
    border: 1px solid #ccc;
    background: #ccc;
    margin:0 3px;
    padding:3px;
    }
    .showpageOf {
    text-decoration:none;
    padding:3px;
    margin: 0 3px 0 0;
    }
    .showpage a {
    text-decoration:none;
    border: 1px solid #ccc;
    padding:3px;
    }
    .showpage a:hover {
    text-decoration:none;
    }
    .showpageNum a:link,.showpage a:link {
    text-decoration:none;
    color:#333;
    }                                                                                                                 Save the template, return again to Edit HTML, and leave the Expand widget unticked. Press ctrlF and find Blog1. This should take you to following line of code:                                                                   <b:widget id='Blog1' locked='false' title='Blog Posts' type='Blog'/>
    <b:widget id='HTML12' locked='false' title='' type='HTML'/>
    <b:widget id='HTML2' locked='false' title='' type='HTML'/>
    </b:section>                                                                                                                  Immediately after </b:section>, add the following line of code:                                                                                                            &lt;script type=&quot;text/javascript&quot;&gt;  function showpageCount(json) {
    var thisUrl = location.href;
    var htmlMap = new Array();
    var isFirstPage = thisUrl.substring(thisUrl.length-5,thisUrl.length)==&quot;.com/&quot;;
    var isLablePage = thisUrl.indexOf(&quot;/search/label/&quot;)!=-1;
    var isPage = thisUrl.indexOf(&quot;/search?updated&quot;)!=-1;
    var thisLable = isLablePage ? thisUrl.substr(thisUrl.indexOf(&quot;/search/label/&quot;)+14,thisUrl.length) : &quot;&quot;;
    thisLable = thisLable.indexOf(&quot;?&quot;)!=-1 ? thisLable.substr(0,thisLable.indexOf(&quot;?&quot;)) : thisLable;
    var thisNum = 1;
    var postNum=1;
    var itemCount = 0;
    var fFlag = 0;
    var eFlag = 0;
    var html= &#39;&#39;;
    var upPageHtml =&#39;&#39;;
    var downPageHtml =&#39;&#39;; var pageCount = 14;
    var displayPageNum = 10;
    var upPageWord = &#39;Previous&#39;;
    var downPageWord = &#39;Next&#39;;var labelHtml = &#39;&lt;span class=&quot;showpageNum&quot;&gt;&lt;a href=&quot;/search/label/&#39;+thisLable+&#39;?&amp;max-results=&#39;+pageCount+&#39;&quot;&gt;&#39;;for(var i=0, post; post = json.feed.entry[i]; i++) {
    var timestamp = post.published.$t.substr(0,10);
    var title = post.title.$t;
    if(isLablePage){
    if(title!=&#39;&#39;){
    if(post.category){
    for(var c=0, post_category; post_category = post.category[c]; c++) {
    if(encodeURIComponent(post_category.term)==thisLable){
    if(itemCount==0 || (itemCount % pageCount ==(pageCount-1))){
    if(thisUrl.indexOf(timestamp)!=-1 ){
    thisNum = postNum;
    }postNum++;
    htmlMap[htmlMap.length] = &#39;/search/label/&#39;+thisLable+&#39;?updated-max=&#39;+timestamp+&#39;T00%3A00%3A00%2B08%3A00&amp;max-results=&#39;+pageCount;
    }
    }
    }
    }//end if(post.category){itemCount++;
    }}else{
    if(title!=&#39;&#39;){
    if(itemCount==0 || (itemCount % pageCount ==(pageCount-1))){
    if(thisUrl.indexOf(timestamp)!=-1 ){
    thisNum = postNum;
    }if(title!=&#39;&#39;) postNum++;
    htmlMap[htmlMap.length] = &#39;/search?updated-max=&#39;+timestamp+&#39;T00%3A00%3A00%2B08%3A00&amp;max-results=&#39;+pageCount;
    }
    }
    itemCount++;
    }
    } for(var p =0;p&lt; htmlMap.length;p++){
    if(p&gt;=(thisNum-displayPageNum-1) &amp;&amp; p&lt;(thisNum+displayPageNum)){
    if(fFlag ==0 &amp;&amp; p == thisNum-2){
    if(thisNum==2){
    if(isLablePage){
    upPageHtml = labelHtml + upPageWord +&#39;&lt;/a&gt;&lt;/span&gt;&#39;;
    }else{
    upPageHtml = &#39;&lt;span class=&quot;showpage&quot;&gt;&lt;a href=&quot;/&quot;&gt;&#39;+ upPageWord +&#39;&lt;/a&gt;&lt;/span&gt;&#39;;
    }
    }else{
    upPageHtml = &#39;&lt;span class=&quot;showpage&quot;&gt;&lt;a href=&quot;&#39;+htmlMap[p]+&#39;&quot;&gt;&#39;+ upPageWord +&#39;&lt;/a&gt;&lt;/span&gt;&#39;;
    }fFlag++;
    }if(p==(thisNum-1)){
    html += &#39;&lt;span class=&quot;showpagePoint&quot;&gt;&#39;+thisNum+&#39;&lt;/span&gt;&#39;;
    }else{
    if(p==0){
    if(isLablePage){
    html = labelHtml+&#39;1&lt;/a&gt;&lt;/span&gt;&#39;;
    }else{
    html += &#39;&lt;span class=&quot;showpageNum&quot;&gt;&lt;a href=&quot;/&quot;&gt;1&lt;/a&gt;&lt;/span&gt;&#39;;
    }
    }else{
    html += &#39;&lt;span class=&quot;showpageNum&quot;&gt;&lt;a href=&quot;&#39;+htmlMap[p]+&#39;&quot;&gt;&#39;+ (p+1) +&#39;&lt;/a&gt;&lt;/span&gt;&#39;;
    }
    }if(eFlag ==0 &amp;&amp; p == thisNum){
    downPageHtml = &#39;&lt;span class=&quot;showpage&quot;&gt; &lt;a href=&quot;&#39;+htmlMap[p]+&#39;&quot;&gt;&#39;+ downPageWord +&#39;&lt;/a&gt;&lt;/span&gt;&#39;;
    eFlag++;
    }
    }//end if(p&gt;=(thisNum-displayPageNum-1) &amp;&amp; p&lt;(thisNum+displayPageNum)){
    }//end for(var p =0;p&lt; htmlMap.length;p++){if(thisNum&gt;1){
    if(!isLablePage){
    html = &#39;&#39;+upPageHtml+&#39; &#39;+html +&#39; &#39;;
    }else{
    html = &#39;&#39;+upPageHtml+&#39; &#39;+html +&#39; &#39;;
    }
    }html = &#39;&lt;div class=&quot;showpageArea&quot;&gt;&lt;span style=&quot;COLOR: #000;&quot; class=&quot;showpageOf&quot;&gt; Pages (&#39;+(postNum-1)+&#39;)&lt;/span&gt;&#39;+html;if(thisNum&lt;(postNum-1)){
    html += downPageHtml;}if(postNum==1) postNum++;
    html += &#39;&lt;/div&gt;&#39;;if(isPage || isFirstPage || isLablePage){
    var pageArea = document.getElementsByName(&quot;pageArea&quot;);
    var blogPager = document.getElementById(&quot;blog-pager&quot;);if(postNum &lt;= 2){
    html =&#39;&#39;;
    }for(var p =0;p&lt; pageArea.length;p++){
    pageArea[p].innerHTML = html;
    }if(pageArea&amp;&amp;pageArea.length&gt;0){
    html =&#39;&#39;;
    }if(blogPager){
    blogPager.innerHTML = html;
    }
    }}
    &lt;/script&gt;&lt;script src=&quot;/feeds/posts/summary?alt=json-in-script&amp;callback=showpageCount&amp;max-results=99999&quot;; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;                                    Preview the template. This won’t show you any impact, but it’s a safety against any code error. Save it, and you would find the page numbers on home page.
  8. Style/Remove Older Post, Newer Post link


    Following code will add style to the below post older/newer/home link. Just go to Designer>Advanced>Add CSS, and paste this:                                                                                                           #blog-pager-older-link, #blog-pager-newer-link, .home-link{background:#FFF0B7; padding: 5px 5px 5px 5px; }                                                                                                         If you want to completely remove them use this code instead:                                                                                               #blog-pager-older-link, #blog-pager-newer-link, .home-link{background:#FFF0B7; padding: 5px 5px 5px 5px; display:none;} 
  9. Remove Subscribe link below the post body.


    Subscribe link below the post looks ugly and should be removed. Just find the following code:        <b:include name=’feedLinks’/>    in your template, delete and save. It is gone.
  10. Add Favicon:


    Choose a favicon, host it on web preferably in ico/png format(check favicongenerator.com), and paste the following code just before </head> in your template:     <link href='YOUR-FAVICON-URL' rel='shortcut icon'/>
    <link href='YOUR-FAVICON-URL' rel='icon'/>

In addition to all the above I also recommend using an offline Blog Editing software. I myself use and recommend windows live Writer for windows and Blogilo for ubuntu.


Top Resources:
  1. Bloggerbuster.com
  2. Boggersentral.com
Read This >>

fb_xd_fragment, Fix for Blogger powered Blogs & Websites


While going through analytics last year I found a large number of urls with query string ?fb_xd_fragment=. While going to this link in a browser, I found, it displays the page for a while and then it goes white. It has been a big problem for a lot of websites, which uses FB Java SDK for like buttons. Someone, in facebook developers' forum recommended using the following code just before the </body> tag to solve this problem.

<!-- Correct fb_xd_fragment Bug Start -->

<script>

document.getElementsByTagName('html')[0].style.display='block';

</script>

<!-- Correct fb_xd_fragment Bug End -->

This fixed the problem for a long time, till it started once again, when I replaced the like button with, Like+Send button. A large number of pages, in analytics were showing the same query string with same problem. I was losing a big chunk of my traffic. I inspected once again if code installed has got corrupted, and hence pasted it there once again. It produced no impact on how the pages with that query string were served. Google has started indexing the pages with these query strings, and that is what has caused the problem. A blogger has suggested the following fix for this problem, which seems to work in most of the cases.

1/ Change your FB.init to the following

FB.init({appId: appId, status: true, cookie: true, xfbml: true, channelUrl: 'http://example.com/channel.html'});

// ^ channel URL above used to workaround fb_xd_fragment bug

2/ Create the static file for http://example.com/channel.html with the following content:

<script src="http://connect.facebook.net/en_US/all.js"></script>

However, a blogspost blog cannot host a .js file. You need to host it on some other website. The solution is not the best for a blogspot blogger.

Fortunately, a member of Facebook Developer forum has given his own script and it works perfectly for blogger. You just need to paste it after opening <body> tag.

<script>

if(window.document.location.href.match('fb_xd_fragment')!=null)

{

var reg=/\?/

window.document.location.href.match('fb_xd_fragment');

var start=window.document.location.href.search(reg)

window.location=window.document.location.href.substring(0,start);

}

</script>

Some of the templates does not have <body> tag instead a variant is available, you just search for <body, and at the end of this tag paste the code there. It stops the problem immediately.
Also Read:
  1. 10 important things to do immediately after starting a BlogSpot blog
  2. 10 Ways to Quickly reduce the Bounce Rate on Landing Page
  3. Facebook Share - Fshare Workaround for Blogger
Read This >>

10 Ways to Quickly reduce the Bounce Rate on Landing Page

When bounce rate is too high, you need to reduce it as soon as possible. There are some tested methods which brings down the bounce rate without any need to scratch your head.

1. Increase the font size of text.

If it was 10, make it 11 or 12 or even 13. Higher font size surely reduces the bounce rate. You can increase them till it start looking odd. This technique works like a magic. Try it!

2. Paste a beautiful picture in the header

Paste a beautiful picture in the header.Preferably a smiling woman or a child.

3. Post with a picture

Post with a picture generally have lower bounce rate. Grab something relevant and if not possible post something beautiful.

4. Post a video on the page

A demonstration video would be great, but if you are doing a crisis management of bounce rate, choose anything from youtube.

5. Rotate a message near header

A marquee tagged message relevant to the page announcing something would serve the purpose.

6. Increase the size of tabs

Tabs with suitable size and bordering are great in increasing pageviews. Increasing the size does reduce the bounce rate.

7. Hyperlinked Picture Thumbnails Row

Arrange a row of thumbnails of pictures with caption and hyperlink to some interesting pages.

8. Use hyperlinks

Use hyperlinks as much as possible, and route them within your website. For External links be careful to force it open in a New Window.

9. Increase the length of the post

Add something more, to let the visitor feel there is still something there. It helps him to stay longer and reduce the likelihood of bounce.

10. Bullets and Numbers

Convert paragraphs into bullet-ed or numbered ones with suitable headings.

Recommended Reading

  1. How to Create Custom Loading Animations to Decrease Bounce Rates

Also See:
  1. 10 important things to do immediately after starting a BlogSpot blog
  2. 10 Surefire Tips for Landing Page Optimization to Maximize Google ...
  3. Google Display Ad Templates Vs. Custom Uploaded Image Ad - A ...

Read This >>

Facebook Share - Fshare Workaround for Blogger

Facebook share requires you to write, meta content on the page you want it to be installed on. The problem with blogger is that you either shall have to insert different meta tags for different pages, or just leave that for search engines to decide. Many people have stopped writing meta tags because of Google's categorical assertion that they no more look into them, though duplicate meta tag may be the cause of concern for you. Because of the absence of meta tags, facebook share does not work properly. It was the case with this site too. in the description it used to serve some crappy url from the template. To avoid this situation, you can add, a tag different from description on your pages. I added <meta content='Ramesh Kumar' name='author'/>, and it worked. It helps Fshare to pull description from sidebar about me. Definitely it is not the solution for people who want description of the post to be displayed. For that you shall have to manually insert description meta tag for all the posts using <b:if> logic. you certainly won't like to do such a tedious task for hundreds of posts written in the past. Just take care for future posts. Insert meta tags for them. However, it is advisable to let the above trick work for old posts and you may insert meta tags for future or selected old posts. Let me, make things simple how to do it in stepwise manner.
  1. Open the HTML editor of your blogger template by going to design and then edit HTML
  2. Press ctrl and F key simultaneously and search for <head>
  3. Look for this line <b:include data='blog' name='all-head-content'/> & Insert <meta content="yourname" name="author">, just after it, Preview and save.
  4. Create a section by the same name in the sidebar like I have with title "author", describing you.
  5. Wait for sometime. Yes, it take some time!
  6. Check the description Fshare provides in preview, You should be able to see your bio going with every share.
  7. Cool down! it is not that Bad. There is no harm people becoming aware about you with every share.
for posts which are important or new ones, you shall have to follow step 1 & 2 above and insert the following code for every post.


<b:if cond='data:blog.url == "http://url of your post"'>
<meta content='keywords for your post' name='keywords'/>
<meta content=' description of your post' name='description'/>
</b:if>


This will be enough for Fshare to read and send the description about your post with every share. If you ask me, I am not interested in doing it for any post, and rather am happy that every share sends my bio with it and also asks people to contact me via email. Wow!
Also, people should know many reputed blogger have stopped using Fshare on their site because of this flaw. You can check labnol

RECOMMENDED READING: Instead of doing the above trick, we have a better solution now.

Read This >>