related_results_labels_thumbs({"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$georss":"http://www.georss.org/georss","xmlns$thr":"http://purl.org/syndication/thread/1.0","id":{"$t":"tag:blogger.com,1999:blog-946428812470639584"},"updated":{"$t":"2010-09-08T23:58:18.578+02:00"},"title":{"type":"text","$t":"Cranked.Me"},"subtitle":{"type":"html","$t":"Screw Web 2.0"},"link":[{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"http://www.cranked.me/feeds/posts/default"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/-/optimization?alt\u003djson-in-script\u0026max-results\u003d6"},{"rel":"alternate","type":"text/html","href":"http://www.cranked.me/search/label/optimization"},{"rel":"hub","href":"http://pubsubhubbub.appspot.com/"},{"rel":"next","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/-/optimization/-/optimization?alt\u003djson-in-script\u0026start-index\u003d7\u0026max-results\u003d6"}],"author":[{"name":{"$t":"Cranked"},"uri":{"$t":"http://www.blogger.com/profile/12112672407202581161"},"email":{"$t":"noreply@blogger.com"}}],"generator":{"version":"7.00","uri":"http://www.blogger.com","$t":"Blogger"},"openSearch$totalResults":{"$t":"9"},"openSearch$startIndex":{"$t":"1"},"openSearch$itemsPerPage":{"$t":"6"},"entry":[{"id":{"$t":"tag:blogger.com,1999:blog-946428812470639584.post-5679228091384507097"},"published":{"$t":"2009-03-24T20:27:00.000+01:00"},"updated":{"$t":"2009-03-24T20:27:23.599+01:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"blogger"},{"scheme":"http://www.blogger.com/atom/ns#","term":"hacks"},{"scheme":"http://www.blogger.com/atom/ns#","term":"geeky"},{"scheme":"http://www.blogger.com/atom/ns#","term":"optimization"},{"scheme":"http://www.blogger.com/atom/ns#","term":"google"},{"scheme":"http://www.blogger.com/atom/ns#","term":"blogger_templates"},{"scheme":"http://www.blogger.com/atom/ns#","term":"bots"}],"title":{"type":"text","$t":"Duplicate title tags, part 2"},"content":{"type":"html","$t":"Hello everyone,\u003cbr /\u003e\u003cbr /\u003eI'm still experimenting on \u003ca href\u003d\"http://cranked.me/2008/11/duplicate-title-tags-meta-descriptions.html\"\u003eDuplicate title tags/duplicate meta descriptions issue\u003c/a\u003e in Blogger.\u003cbr /\u003e\u003cbr /\u003eI've roughly described it in my Tweets:\u003cbr /\u003e\u003cblockquote\u003e\u003cp\u003e\u003ca href\u003d\"http://twitter.com/Eterniel\" rel\u003d\"nofollow\" target\u003d\"_blank\"\u003eEterniel\u003c/a\u003e:Just did some changes to my website template. Hopefully they will resolve most of the Duplicate Title Tags issues.\u003c/p\u003e\u003cp\u003e\u003ca href\u003d\"http://twitter.com/Eterniel\" rel\u003d\"nofollow\" target\u003d\"_blank\"\u003eEterniel\u003c/a\u003e:The biggest problem in this issue, of course, is blogger\u003c/p\u003e\u003cp\u003e\u003ca href\u003d\"http://twitter.com/Eterniel\" rel\u003d\"nofollow\" target\u003d\"_blank\"\u003eEterniel\u003c/a\u003e:It generates unneeded '?showcomment\u003d' urls, which are then interpreted by Google Webmaster Tools as distinct pages\u003c/p\u003e\u003cp\u003e\u003ca href\u003d\"http://twitter.com/Eterniel\" rel\u003d\"nofollow\" target\u003d\"_blank\"\u003eEterniel\u003c/a\u003e:Furthermore, Blogger exports these links in \u003cyoursite\u003e/feeds/comments/default feed\u003c/p\u003e\u003cp\u003e\u003ca href\u003d\"http://twitter.com/Eterniel\" rel\u003d\"nofollow\" target\u003d\"_blank\"\u003eEterniel\u003c/a\u003e:So you have to throw away 'all-head-content' includable and replace it with your own.\u003cbr /\u003e\u003c/p\u003e\u003c/blockquote\u003e\u003cbr /\u003eI'm quite sure this will resolve all the issues. However, it takes quite some time while Google re-crawls the whole site.\u003cbr /\u003e\u003cbr /\u003eI'm quite impatient, so I will use one trick. Don't pay attention to the following lines, that's just some too complicated robot SEO magic:\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cpre style\u003d\"font-size:0.6em;color:green\"\u003e\u0026lt;!-- **robots --\u0026gt;\u003cbr /\u003e\u0026lt;script xmlns\u003d'http://www.googlebot.com/1999/gsa-crawler' xmlns:meta\u003d'http://www.googlebot.com/1999/gsa-crawler/meta' \u0026gt;\u003cbr /\u003e\u0026lt;user-agent name\u003d\"Mediapartners-Google\"\u0026gt;\u003cbr /\u003e\u0026lt;page\u0026gt;\u003cbr /\u003e\u0026lt;uri\u003e\u003ca href\u003d\"http://cranked.me/2008/04/but-i-figure-if-it-isnt-little-scary.html\"\u003ehttp://cranked.me/2008/04/but-i-figure-if-it-isnt-little-scary.html\u003c/a\u003e\u0026lt;/uri\u0026gt;\u003cbr /\u003e\u0026lt;index\u0026gt;1\u0026lt;/index\u0026gt;\u003cbr /\u003e\u0026lt;follow\u0026gt;0\u0026lt;/follow\u0026gt;\u003cbr /\u003e\u0026lt;/page\u0026gt;\u003cbr /\u003e\u0026lt;page\u0026gt;\u003cbr /\u003e\u0026lt;uri\u003e\u003ca href\u003d\"http://cranked.me/2008/04/reason-i-dont-shop-online.html\"\u003ehttp://cranked.me/2008/04/reason-i-dont-shop-online.html\u003c/a\u003e\u0026lt;/uri\u0026gt;\u003cbr /\u003e\u0026lt;index\u0026gt;1\u0026lt;/index\u0026gt;\u003cbr /\u003e\u0026lt;follow\u0026gt;0\u0026lt;/follow\u0026gt;\u003cbr /\u003e\u0026lt;/page\u0026gt;\u003cbr /\u003e\u0026lt;/user-agent\u0026gt;\u003cbr /\u003e\u003cbr /\u003e\u0026lt;/gsa:script\u0026gt;\u003cbr /\u003e\u0026lt;!-- /**robots --\u0026gt;\u003cbr /\u003e\u003cbr /\u003e\u003c/pre\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cbr/\u003e\u003cbr/\u003e\u003ci\u003eThis post was originally posted at \u003ca href\u003d\"http://cranked.me/\"\u003eHome of the Cranked SEO\u003c/a\u003e\u003c/i\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/946428812470639584-5679228091384507097?l\u003dwww.cranked.me' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://www.cranked.me/feeds/5679228091384507097/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://www.cranked.me/2009/03/duplicate-title-tags-part-2.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/5679228091384507097"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/5679228091384507097"},{"rel":"alternate","type":"text/html","href":"http://www.cranked.me/2009/03/duplicate-title-tags-part-2.html","title":"Duplicate title tags, part 2"}],"author":[{"name":{"$t":"Cranked"},"uri":{"$t":"http://www.blogger.com/profile/12112672407202581161"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"01958181988464391374"}}],"thr$total":{"$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-946428812470639584.post-7848997013545936036"},"published":{"$t":"2009-02-19T18:15:00.004+01:00"},"updated":{"$t":"2009-02-21T11:19:38.327+01:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"traffic"},{"scheme":"http://www.blogger.com/atom/ns#","term":"optimization"},{"scheme":"http://www.blogger.com/atom/ns#","term":"bots"}],"title":{"type":"text","$t":"Direct traffic from Montara - yet another search engine launch? :)"},"content":{"type":"html","$t":"Today I have experienced a spike in direct traffic coming from one particular city: Montara, California (\u003ca href\u003d\"http://montara.com/\"\u003ewebsite\u003c/a\u003e)\u003cbr /\u003e\u003cbr /\u003e\u003cdiv class\u003d\"separator\" style\u003d\"clear: both; text-align: center;\"\u003e\u003ca href\u003d\"http://1.bp.blogspot.com/_6cdJM5oXUS8/SZ2QvlEvYNI/AAAAAAAAIhs/kfPsaoyP_Z8/s1600-h/direct-traffic-from-montara-shown-in-google-analytics.PNG\" imageanchor\u003d\"1\" style\u003d\"margin-left: 1em; margin-right: 1em;\"\u003e\u003cimg alt\u003d\"massive amount of direct traffic from a small city in California\" border\u003d\"0\" src\u003d\"http://1.bp.blogspot.com/_6cdJM5oXUS8/SZ2QvlEvYNI/AAAAAAAAIhs/kfPsaoyP_Z8/s800/direct-traffic-from-montara-shown-in-google-analytics.PNG\" /\u003e\u003c/a\u003e\u003c/div\u003e\u003cbr /\u003e\u003cdl\u003e\u003cdt\u003e\u003ca href\u003d\"http://en.wikipedia.org/wiki/Montara\"\u003eMontara\u003c/a\u003e\u003c/dt\u003e\u003cdd\u003eis a small city in California, with less than 3,000 inhabitants. A hundred visits a day from city that big was suspicious. \u003c/dd\u003e\u003c/dl\u003e\u003cbr /\u003e\u003ca href\u003d\"http://www.webmasterworld.com/analytics/3788630.htm\"\u003eIt seems not only I have experienced this\u003c/a\u003e. \u003cbr /\u003e\u003cbr /\u003e'The visitor' reports Internet Explorer with resolutions 1024x768 and 800x600, Flash version 10 and Java support.\u003cbr /\u003e\u003cbr /\u003eDo we experience a rise of yet another web crawler? :)\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cbr/\u003e\u003cbr/\u003e\u003ci\u003eThis post was originally posted at \u003ca href\u003d\"http://cranked.me/\"\u003eHome of the Cranked SEO\u003c/a\u003e\u003c/i\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/946428812470639584-7848997013545936036?l\u003dwww.cranked.me' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://www.cranked.me/feeds/7848997013545936036/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://www.cranked.me/2009/02/direct-traffic-from-montara-yet-another.html#comment-form","title":"10 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/7848997013545936036"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/7848997013545936036"},{"rel":"alternate","type":"text/html","href":"http://www.cranked.me/2009/02/direct-traffic-from-montara-yet-another.html","title":"Direct traffic from Montara - yet another search engine launch? :)"}],"author":[{"name":{"$t":"Cranked"},"uri":{"$t":"http://www.blogger.com/profile/12112672407202581161"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"01958181988464391374"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://1.bp.blogspot.com/_6cdJM5oXUS8/SZ2QvlEvYNI/AAAAAAAAIhs/kfPsaoyP_Z8/s72-c/direct-traffic-from-montara-shown-in-google-analytics.PNG","height":"72","width":"72"},"thr$total":{"$t":"10"}},{"id":{"$t":"tag:blogger.com,1999:blog-946428812470639584.post-4692665789475645098"},"published":{"$t":"2008-11-13T14:37:00.019+01:00"},"updated":{"$t":"2009-03-12T12:58:13.931+01:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"blogger"},{"scheme":"http://www.blogger.com/atom/ns#","term":"seo"},{"scheme":"http://www.blogger.com/atom/ns#","term":"howtos"},{"scheme":"http://www.blogger.com/atom/ns#","term":"blogging"},{"scheme":"http://www.blogger.com/atom/ns#","term":"optimization"},{"scheme":"http://www.blogger.com/atom/ns#","term":"google"}],"title":{"type":"text","$t":"Duplicate title tags / meta descriptions: Google Webmaster Tools and Blogger blogs (fix-it manual included)"},"content":{"type":"html","$t":"Sometimes I receive very interesting e-mails or insightful comments like this: \u003ca href\u003d\"http://cranked.me/2008/07/blogger-templates-and-xhtml-markup.html#c7051926467725606787\" target\u003d\"_blank\"\u003eHave you found a solution to duplicate title tags/duplicate meta description issue?\u003c/a\u003e. I try to respond as extensive as possible at that moment, and often even dedicate posts to describe it in more detail.\u003cbr /\u003e\u003cbr /\u003eSo today's post in dedicated to \u003cb\u003eBlogger generated \"Duplicate title tags/Duplicate meta descriptions\" warnings in Google Webmaster Tools.\u003c/b\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ca href\u003d\"http://cranked.me/2008/11/duplicate-title-tags-meta-descriptions.html#duplicate_title_tags_duplicate_meta_descriptions_how_to_fix\"\u003eI know how bad duplicate title tags and duplicate meta descriptions are, just give me \"fix it\" paragraph fast.\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ch2\u003eWhat is \"Duplicate title tags\" or \"Duplicate meta descriptions\"?\u003c/h2\u003eSearch engines nowadays are smart. Very smart. However they are still what they are - machines. Sometimes they can't decide which exactly your page matches the search query the best - so they check everything that can give them more clue - titles of your pages, their meta keywords, meta descriptions - everything. However, if two your pages have the same title and same meta description, there is no such clue. That's the reason search engines consider duplicate meta descriptions/title tags as \"bad\", and can actually penalize you for that.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ch2\u003eWhat is Google Webmaster Tools and how is it related to Duplicate title tags and Duplicate meta descriptions warning?\u003c/h2\u003eWe all know \u003ca href\u003d\"http://www.google.com/webmasters/tools/\"\u003eGoogle Webmaster Tools\u003c/a\u003e. It is a great tool that gives you some insight on how your website is seen by Google (and can also give you some hints about up-to-date Page Rank of your pages (while toolbar rank is updated once in a couple of months, data in Google Webmaster Tools is more fresh, see \"Crawl stats\").\u003cbr /\u003eHowever, sometimes Google Webmaster Tools provide us with such an intimidating picture:\u003cbr /\u003e\u003cdiv class\u003d\"separator\" style\u003d\"clear: both; text-align: center;\"\u003e\u003ca href\u003d\"http://2.bp.blogspot.com/_6cdJM5oXUS8/SRv6yo2SzgI/AAAAAAAAIRE/NrfqLJ97HHg/s1600-h/duplicate-title-tags-duplicate-meta-descriptions-warning-in-google-webmaster-tools-2.png\" imageanchor\u003d\"1\" style\u003d\"margin-left: 1em; margin-right: 1em;\"\u003e\u003cimg alt\u003d\"duplicate title tags/duplicate meta descriptions warning in google webmaster tools\" border\u003d\"0\" src\u003d\"http://2.bp.blogspot.com/_6cdJM5oXUS8/SRv6yo2SzgI/AAAAAAAAIRE/NrfqLJ97HHg/s400/duplicate-title-tags-duplicate-meta-descriptions-warning-in-google-webmaster-tools-2.png\" title\u003d\"duplicate title tags/duplicate meta descriptions warning in google webmaster tools\" /\u003e\u003c/a\u003e\u003c/div\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ccenter\u003e\u003ci\u003e(Numbers in this image are photoshopped, since after applying everything I wrote in this guide I don't have any duplicate title tags/meta descriptions issues anymore)\u003c/i\u003e\u003c/center\u003e\u003cbr /\u003eThese numbers can indeed be scary.\u003cbr /\u003e\u003cbr /\u003e\u003ch2\u003eWhy it happens?\u003c/h2\u003eBlogger has a bad habit to refer to comments through links like this: http://cranked.me/2008/07/blogger-templates-and-xhtml-markup.html?showComment\u003d1219419960000#c7051926467725606787. Thus Google threats links like these as separate pages (while it is actually simply a link to an anchor on your page). Actually, there are \u003ca href\u003d\"http://cranked.me/2008/07/blogspot-cares-about-spammers-more-then.html\"\u003equite a few other SEO problems in Blogger\u003c/a\u003e as well (doesn't mean they can't be fixed though, we'll see it later :)\u003cbr /\u003e\u003cbr /\u003e\u003ch2\u003eHow bad is it for SEO?\u003c/h2\u003eFor every comment you have in your blog, Google thinks there exists another page with the same title tag and meta description, thus Google might decide your site is not search-engine-friendly. (Since it's actually one page, these \"multiple\" pages in Google's eyes will also have the same content, which can lead to \u003ca href\u003d\"http://cranked.me/2008/07/blogger-seo-tip-for-sunday-wrap-your.html\"\u003eduplicate content issue\u003c/a\u003e as well). Google Webmaster Tools doesn't show you any statistics about your pages that are considered 'duplicate content', however numbers of 'duplicate title tag issues' and 'duplicate meta description issues' might ring a bell and give you the general idea.\u003cbr /\u003e\u003cbr /\u003e\u003ch2 id\u003d\"duplicate_title_tags_duplicate_meta_descriptions_how_to_fix\"\u003eOk, duplicate title tags/duplicate meta descriptions are really bad. How to fix it?\u003c/h2\u003eBasically, all we need to do to fix duplicate title tags and duplicate meta descriptions issue in Blogger is to hide links to comments in your posts from search engines. Content of the comments will still be in search engines because it is a part of your post page.\u003cbr /\u003eSo the fix is performed in three steps:\u003cbr /\u003e\u003col\u003e\u003cli\u003e\u003cb\u003eEdit template\u003c/b\u003e\u003c/li\u003e\u003cli\u003e\u003cb\u003eWrap blog archive widget\u003c/b\u003e\u003c/li\u003e\u003cli\u003e\u003cb\u003eRemove or replace recent comments widget\u003c/b\u003e\u003c/li\u003e\u003c/ol\u003e\u003ci\u003eNote: there is a small twist though: Google will still be able to dig some links to your comment pages from your comments feed (usually located at /feeds/comments/default).\u003cbr /\u003e\u003c/i\u003e\u003cbr /\u003e\u003ch3 id\u003d\"step1\"\u003eStep 1. Edit your blog template\u003c/h3\u003eWe need to hide the permalink to the comment from search engines:\u003cbr /\u003e\u003cdiv class\u003d\"separator\" style\u003d\"clear: both; text-align: center;\"\u003e\u003ca href\u003d\"http://4.bp.blogspot.com/_6cdJM5oXUS8/SRw1KK8dNtI/AAAAAAAAIRk/b5RdxNGPsfs/s1600-h/interesting-and-motivating-silfiriels-comment-3.png\" imageanchor\u003d\"1\" style\u003d\"margin-left: 1em; margin-right: 1em;\"\u003e\u003cimg border\u003d\"0\" src\u003d\"http://4.bp.blogspot.com/_6cdJM5oXUS8/SRw1KK8dNtI/AAAAAAAAIRk/b5RdxNGPsfs/s800/interesting-and-motivating-silfiriels-comment-3.png\" /\u003e\u003c/a\u003e\u003c/div\u003e(the link that says \u003ci\u003eAugust 22, 2008 5:46 PM\u003c/i\u003e). However, we would still like to be able to \u003ca href\u003d\"http://cranked.me/2008/07/blogger-templates-and-xhtml-markup.html#c7051926467725606787\"\u003elink to the comment\u003c/a\u003e if needed, so the link should still be there for users.\u003cbr /\u003eI'm not a big fan of JavaScript because content generated by it cannot be used for SEO purposes, however this time we will use this weakness for our benefit.\u003cbr /\u003e\u003cbr /\u003eSo, open your blog template (remember to previously save it). Tick \"Expand Widget Templates\" checkbox, and find this code in your template:\u003cbr /\u003e\u003ccode\u003e\u0026lt;a expr:href\u003d'data:comment.url' title\u003d'comment permalink'\u0026gt;\u003cbr /\u003e\u0026nbsp;\u0026nbsp;\u0026lt;data:comment.timestamp/\u0026gt;\u003cbr /\u003e\u0026lt;/a\u0026gt;\u003cbr /\u003e\u003c/code\u003e\u003cbr /\u003e\u003cbr /\u003eIt should look like this:\u003cbr /\u003e\u003cdiv class\u003d\"separator\" style\u003d\"clear: both; text-align: center;\"\u003e\u003ca href\u003d\"http://3.bp.blogspot.com/_6cdJM5oXUS8/SZ2YpxcUVEI/AAAAAAAAIh0/jRAVdq_Gy_g/s1600-h/blogger-template-comment-footer-code-2.png\" imageanchor\u003d\"1\" style\u003d\"margin-left: 1em; margin-right: 1em;\"\u003e\u003cimg border\u003d\"0\" src\u003d\"http://3.bp.blogspot.com/_6cdJM5oXUS8/SZ2YpxcUVEI/AAAAAAAAIh0/jRAVdq_Gy_g/s800/blogger-template-comment-footer-code-2.png\" /\u003e\u003c/a\u003e\u003c/div\u003e\u003cbr /\u003eReplace it with the following code:\u003cbr /\u003e\u003ccode\u003e\u0026lt;b:if cond\u003d'data:post.commentPagingRequired'\u0026gt;\u003cbr /\u003e\u0026nbsp;\u0026nbsp;\u0026lt;a expr:href\u003d'data:comment.url' title\u003d'comment permalink'\u0026gt; \u0026lt;data.comment.timestamp/\u0026gt; \u0026lt;/a\u0026gt;\u003cbr /\u003e\u0026lt;b:else/\u0026gt;\u003cbr /\u003e\u0026nbsp;\u0026nbsp;\u0026lt;a expr:href\u003d'data:blog.url + \u0026amp;quot;#\u0026amp;quot; + data:comment.anchorName' title\u003d'comment permalink'\u0026gt; \u0026lt;data:comment.timestamp/\u0026gt; \u0026lt;/a\u0026gt;\u003cbr /\u003e\u0026lt;/b:if\u0026gt;\u003cbr /\u003e\u003c/code\u003e\u003cbr /\u003e\u003cbr /\u003eSave the template and check how it looks. It should look the same as original, however now timestamps should link to comments by their anchor ID's, without confusing Google crawler with ?showcomment\u003d part. (In case multi-page comments are required, the long form will be used). \u003cbr /\u003eThe described trick works in all browsers that I know of.\u003cbr /\u003e\u003cbr /\u003e\u003ch3 id\u003d\"step2\"\u003eStep 2. Wrap blog archive widget\u003c/h3\u003eBlog archive widget for Blogger is very nice, however it has a bad habit of generating long links Google doesn't understand. This leads to \u003ca href\u003d\"http://cranked.me/2008/07/blogger-seo-tip-for-sunday-wrap-your.html\"\u003eduplicate content issues\u003c/a\u003e and duplicate title tags/meta descriptions. It is easy to fix, however: click the small wrench \u003cimg src\u003d\"http://img1.blogblog.com/img/icon18_wrench_allbkg.png\" /\u003e icon under your blog archive widget, and choose \u003cb\u003eflat list\u003c/b\u003e option in the settings window:\u003cbr /\u003e\u003cdiv class\u003d\"separator\" style\u003d\"clear: both; text-align: center;\"\u003e\u003ca href\u003d\"http://3.bp.blogspot.com/_6cdJM5oXUS8/SRwk3m5y_0I/AAAAAAAAIRc/pWRk6Lbrth8/s1600-h/blogger-blog-archive-widget-configuration-page.png\" imageanchor\u003d\"1\" style\u003d\"margin-left: 1em; margin-right: 1em;\"\u003e\u003cimg border\u003d\"0\" src\u003d\"http://3.bp.blogspot.com/_6cdJM5oXUS8/SRwk3m5y_0I/AAAAAAAAIRc/pWRk6Lbrth8/s800/blogger-blog-archive-widget-configuration-page.png\" /\u003e\u003c/a\u003e\u003c/div\u003eDon't forget to press \u003cb\u003eSave\u003c/b\u003e button :)\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ch3 id\u003d\"step3\"\u003eStep 3. Remove recent comments widget\u003c/h3\u003eRecent comments widget is made by creating a feed widget with \u003cb\u003ehttp://\u003ci\u003e\u0026lt;yoursiteurl\u0026gt;\u003c/i\u003e/feeds/comments/default\u003c/b\u003e url as feed source. It is nifty to have, however it supplies search engines with links to your blog comments, what we try to avoid (because comment content goes to search engines' index with your post page anyway). Either remove the widget or use the \u003ca href\u003d\"http://www.bloggerbuster.com/2007/08/create-your-oen-recent-comments-widgets.html\"\u003ejavascript recent comments widget\u003c/a\u003e. (The javascript one, however, might slow down loading time of your sidebar a bit).\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003eAfter following instructions supplied here, Google Webmaster Tools will not bother you with the duplicate title tags/meta descriptions issue as there will be none (it takes time for Google to re-crawl all your site, so be patient, takes about 2-3 weeks). This will boost your search engine rankings a little bit since Google now thinks your site is \"Google friendly\" (and in fact it is).\u003cbr /\u003e\u003cbr /\u003eIn the next post I'll describe how to teach Blogger to highlight your own comments with different color/style, so make sure you subscribe to my \u003ca href\u003d\"http://feeds.feedburner.com/Eterniel\"\u003erss feed\u003c/a\u003e.\u003cbr /\u003e\u003cbr /\u003eGood luck and enjoy your Google Webmaster Tools experience :)\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cbr/\u003e\u003cbr/\u003e\u003ci\u003eThis post was originally posted at \u003ca href\u003d\"http://cranked.me/\"\u003eHome of the Cranked SEO\u003c/a\u003e\u003c/i\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/946428812470639584-4692665789475645098?l\u003dwww.cranked.me' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://www.cranked.me/feeds/4692665789475645098/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://www.cranked.me/2008/11/duplicate-title-tags-meta-descriptions.html#comment-form","title":"30 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/4692665789475645098"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/4692665789475645098"},{"rel":"alternate","type":"text/html","href":"http://www.cranked.me/2008/11/duplicate-title-tags-meta-descriptions.html","title":"Duplicate title tags / meta descriptions: Google Webmaster Tools and Blogger blogs (fix-it manual included)"}],"author":[{"name":{"$t":"Cranked"},"uri":{"$t":"http://www.blogger.com/profile/12112672407202581161"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"01958181988464391374"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://2.bp.blogspot.com/_6cdJM5oXUS8/SRv6yo2SzgI/AAAAAAAAIRE/NrfqLJ97HHg/s72-c/duplicate-title-tags-duplicate-meta-descriptions-warning-in-google-webmaster-tools-2.png","height":"72","width":"72"},"thr$total":{"$t":"30"}},{"id":{"$t":"tag:blogger.com,1999:blog-946428812470639584.post-4803613507988513399"},"published":{"$t":"2008-07-22T12:06:00.003+02:00"},"updated":{"$t":"2008-07-22T13:34:24.687+02:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"optimization"},{"scheme":"http://www.blogger.com/atom/ns#","term":"google"},{"scheme":"http://www.blogger.com/atom/ns#","term":"web"}],"title":{"type":"text","$t":".ME domains are NOT indexed and crawled by Google"},"content":{"type":"html","$t":"As you may know, I own a bunch of .me domains. I have been experimenting with them for a while, and here are my results:\u003cbr /\u003e\u003cbr /\u003e\u003cdiv style\u003d\"text-align: center;\"\u003e \u003cbig\u003e\u003cb\u003e\u0026nbsp;\u003c/b\u003e\u003c/big\u003e\u003c/div\u003e\u003cdiv style\u003d\"text-align: center;\"\u003e\u003cbig\u003e\u003cb\u003e.ME domains are NOT yet indexed and crawled by Google.\u003c/b\u003e\u003c/big\u003e\u0026nbsp;\u003c/div\u003e\u003cbr /\u003e\u003cbr /\u003eFrom a bunch of my websites on .me domains, none is included in Google index. Plenty of them are hosted at BlogSpot, so Google is aware as hell about their presence. Yet none of them has been crawled yet, and \u003ca href\u003d\"http://www.google.com/webmasters/tools\"\u003eGoogle Webmasters Tools\u003c/a\u003e accepts only half of them.\u003cbr /\u003e\u003cbr /\u003e\u003cq\u003eWhat do you mean \"half\"?\u003c/q\u003e — you might ask? Here's how: \u003cbr /\u003e\u003cbr /\u003e\u003cdiv class\u003d\"separator\" style\u003d\"text-align: center; clear: both;\"\u003e\u003ca href\u003d\"http://1.bp.blogspot.com/_6cdJM5oXUS8/SIWz6__C34I/AAAAAAAAF6M/3ucOvO7VEmk/s1600-h/google+webmaster+tools+refuses+to+accept+a+working+dot-me+domain.PNG\" imageanchor\u003d\"1\" style\u003d\"border: 0pt none ; background-color: transparent; margin-left: 1em; margin-right: 1em;\"\u003e\u003cimg alt\u003d\"google webmaster tools refuses to accept a working dot-me domain\" src\u003d\"http://1.bp.blogspot.com/_6cdJM5oXUS8/SIWz6__C34I/AAAAAAAAF6M/6UfHwnsED5E/s400-R/google+webmaster+tools+refuses+to+accept+a+working+dot-me+domain.PNG\" style\u003d\"border: 0pt none ;\" /\u003e\u003c/a\u003e\u003c/div\u003eWhile sites like \u003ca href\u003d\"http://game-guide.me/\"\u003ehttp://game-guide.me/\u003c/a\u003e and \u003ca href\u003d\"http://supercool.me/\"\u003ehttp://supercool.me/\u003c/a\u003e are accepted perfectly well but simply not indexed, sites like \u003ca href\u003d\"http://eviscerated.me/\"\u003ehttp://eviscerated.me/\u003c/a\u003e are simply not accepted with \"General HTTP error: Domain name not found\". Read \u003ca href\u003d\"http://eterniel.blogspot.com/2008/07/general-http-error-domain-name-not.html\"\u003ehow to resolve General HTTP error: Domain name not found\u003c/a\u003e if you have similar problems with your other sites.\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003e\u003cbr /\u003eMeanwhile, the only .me domain that is indexed is \u003ca href\u003d\"http://www.domain.me/\"\u003ehttp://www.domain.me/\u003c/a\u003e. This gives us a hope every other .me domain will be indexed as well.\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cbr/\u003e\u003cbr/\u003e\u003ci\u003eThis post was originally posted at \u003ca href\u003d\"http://cranked.me/\"\u003eHome of the Cranked SEO\u003c/a\u003e\u003c/i\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/946428812470639584-4803613507988513399?l\u003dwww.cranked.me' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://www.cranked.me/feeds/4803613507988513399/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://www.cranked.me/2008/07/me-domains-are-not-indexed-and-crawled.html#comment-form","title":"6 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/4803613507988513399"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/4803613507988513399"},{"rel":"alternate","type":"text/html","href":"http://www.cranked.me/2008/07/me-domains-are-not-indexed-and-crawled.html","title":".ME domains are NOT indexed and crawled by Google"}],"author":[{"name":{"$t":"Cranked"},"uri":{"$t":"http://www.blogger.com/profile/12112672407202581161"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"01958181988464391374"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://1.bp.blogspot.com/_6cdJM5oXUS8/SIWz6__C34I/AAAAAAAAF6M/6UfHwnsED5E/s72-Rc/google+webmaster+tools+refuses+to+accept+a+working+dot-me+domain.PNG","height":"72","width":"72"},"thr$total":{"$t":"6"}},{"id":{"$t":"tag:blogger.com,1999:blog-946428812470639584.post-6159462280926550761"},"published":{"$t":"2008-07-10T22:49:00.030+02:00"},"updated":{"$t":"2008-08-22T13:35:34.636+02:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"engineering"},{"scheme":"http://www.blogger.com/atom/ns#","term":"optimization"}],"title":{"type":"text","$t":"Spartan Programming: A Real Man's approach to engineering"},"content":{"type":"html","$t":"\u003ca onblur\u003d\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href\u003d\"http://foxrecord.appspot.com/img/CoolThree.gif\"\u003e\u003cimg style\u003d\"float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;border:0 none;\" src\u003d\"http://foxrecord.appspot.com/img/CoolThree.gif\" width\u003d\"250\" alt\u003d\"man and machine flexible coolthree keyboard\"id\u003d\"BLOGGER_PHOTO_ID_5221574662450553762\" /\u003e\u003c/a\u003e \u003cp\u003e13 years of coding don't pass without leaving a trace. You start to get stuck for hours in a shower on shampoo instructions that read \"Apply, lather, rinse, repeat\", type with a speed of a machine gun, navigate the code files using only your keyboard with inhuman agility, your fingers become longer and neck develops an aristocratic stoop. You also develop some sort of a style: the way you write code, the way you prefer to solve design problems, and a guideline that you use to evaluate code written by others. Your coding style is a distinct feature of you: it is honed all those years. Like an oriental master of combat that polishes his kung-fu for 60 years, you polish your code: the way it looks, the way it feels and even performs.\u003c/p\u003e\u003cp\u003eThrough my programming experience, I never had an 'ultimate guideline to coding style'. My coding style was developed by seeing millions of lines of code from hundreds of other developers and by writing code myself. If I saw something that I considered cool I eventually adopted that in the code I wrote. If I saw something looks and performs fine — I was reusing that construct again and again. Never I had the name for my style — and if I was asked yesterday, I would define it in a couple of taciturn men words. But today, I have even a better definition — after stumbling at \u003ca href\u003d\"http://www.codinghorror.com/blog/archives/001148.html\"\u003eJeff Atwood's article\u003c/a\u003e in my feed reader I finally know the name of the coding style I acknowledged and tried to follow and hone through all my coding career.\u003c/p\u003e\u003cp\u003eThe name is short, precise and manly: \u003ca href\u003d\"http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Spartan_programming\"\u003eSpartan programming\u003c/a\u003e.\u003c/p\u003e\u003cdiv class\u003d\"separator\" style\u003d\"text-align: center; clear: both;\"\u003e\u003c/div\u003e\u003ccenter\u003e\u003ca href\u003d\"http://2.bp.blogspot.com/_6cdJM5oXUS8/SHZ2L5VukSI/AAAAAAAAFzk/--kHaGlGcDI/s1600-h/300+Spartans+movie+screenshot.jpg\" imageanchor\u003d\"1\" style\u003d\"border: 0pt none ; background-color: transparent; margin-left: 1em; margin-right: 1em;\"\u003e\u003cimg alt\u003d\"300 Spartans movie screenshot\" src\u003d\"http://2.bp.blogspot.com/_6cdJM5oXUS8/SHZ2L5VukSI/AAAAAAAAFzk/xkJnq85rYOM/s400-R/300+Spartans+movie+screenshot.jpg\" style\u003d\"border: 0pt none ;\" /\u003e\u003c/a\u003e\u003c/center\u003e\u003cspan style\u003d\"font-size: 0pt;\"\u003e(I can't stand it, I just have to snatch this picture from the original Jeff's post).\u003c/span\u003e \u003cp\u003eSpartan programming. Two words say it all. Minimal, ascetic, open, yet powerful and to the point. The whole spartan armor set consists of a helmet and a shield — yet one look at a spartan leaves not even a small doubt in his immense strength and physical invincibility. \u003ci\u003e\u003cq\u003eThere are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.\u003c/q\u003e\u003ccite\u003e— C.A.R. Hoare.\u003c/cite\u003e\u003c/i\u003e\u003c/p\u003e\u003cbr /\u003e\u003cbr /\u003eA quote from a Spartan programming description: \u003cdiv width\u003d\"80%\"\u003e\u003c/div\u003eSpartan programming strives for simultaneous minimization of all of the following measures of code complexity: \u003col style\u003d\"text-align: justify;\"\u003e\u003cli\u003e\u003ca href\u003d\"http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Horizontal_complexity%2C_spartan_reduction_of\" rel\u003d\"nofollow\" title\u003d\"Horizontal complexity, spartan reduction of\"\u003ehorizontal complexity\u003c/a\u003e, that is, the depth of nesting of control structures, just as the total line length. \u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003ca href\u003d\"http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Vertical_complexity%2C_spartan_reduction_of\" rel\u003d\"nofollow\" title\u003d\"Vertical complexity, spartan reduction of\"\u003evertical complexity\u003c/a\u003e, that is, the code length in lines. \u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003ca href\u003d\"http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Token_count%2C_spartan_reduction_of\" rel\u003d\"nofollow\" title\u003d\"Token count, spartan reduction of\"\u003etoken count\u003c/a\u003e \u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003ca href\u003d\"http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Character_count%2C_spartan_reduction_of\" rel\u003d\"nofollow\" title\u003d\"Character count, spartan reduction of\"\u003echaracter count\u003c/a\u003e \u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003ca href\u003d\"http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Parameters%2C_spartan_reduction_of\" rel\u003d\"nofollow\" title\u003d\"Parameters, spartan reduction of\"\u003eparameters\u003c/a\u003e that is the number of parameters to a \u003ca href\u003d\"http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Routine\" rel\u003d\"nofollow\" title\u003d\"Routine\"\u003eroutine\u003c/a\u003e or a \u003ca href\u003d\"http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Generic_structure\" rel\u003d\"nofollow\" title\u003d\"Generic structure\"\u003egeneric structure\u003c/a\u003e. \u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003ca href\u003d\"http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Variables%2C_spartan_reduction_of\" rel\u003d\"nofollow\" title\u003d\"Variables, spartan reduction of\"\u003evariables\u003c/a\u003e \u003c/li\u003e\u003cbr /\u003e\u003cli\u003elooping instruction, that is the number of iterative instructions and their nesting level. \u003c/li\u003e\u003cbr /\u003e\u003cli\u003econditionals, that is the number of \u003cb\u003eif\u003c/b\u003e and multiple branch \u003cb\u003eswitch\u003c/b\u003e statements. \u003c/li\u003e\u003cbr /\u003e\u003c/ol\u003eThis is how Leonidas would write the code if he lived in our days and wasn't busy fighting with Chuck Norris for world dominance. \u003cp\u003eIt is my deep belief that code should be as simple and as straightforward as possible. As Albert Einstein said, \u003cq\u003eAny fool can make things bigger, more complex, and more violent. It takes a touch of genius - and a lot of courage - to move in the opposite direction\u003c/q\u003e.\u003c/p\u003e\u003cp\u003eThe code should be short, sharp and to the point. If you think it's a good design idea to implement \"just a couple more classes\" because \"it makes sense\" to inherit \u003ca href\u003d\"http://en.wikipedia.org/wiki/Cat\" rel\u003d\"nofollow\"\u003eCFelisCatus\u003c/a\u003e from \u003cspan style\u003d\"font-weight:bold;\"\u003eCAnimalia\u003c/span\u003e-\u0026gt;\u003cspan style\u003d\"font-weight:bold;\"\u003eCChordata\u003c/span\u003e-\u0026gt;\u003cspan style\u003d\"font-weight:bold;\"\u003eCMammalia\u003c/span\u003e-\u0026gt;\u003cspan style\u003d\"font-weight:bold;\"\u003eCCarnivora\u003c/span\u003e-\u0026gt;\u003cspan style\u003d\"font-weight:bold;\"\u003eCFelidae\u003c/span\u003e-\u0026gt;\u003cspan style\u003d\"font-weight:bold;\"\u003eCFelis\u003c/span\u003e instead of inheriting \u003cspan style\u003d\"font-weight:bold;\"\u003eCCat\u003c/span\u003e from \u003cspan style\u003d\"font-weight:bold;\"\u003eCAnimal\u003c/span\u003e — you are wrong. The next engineer with 80% probability will simply not know what Felis catus is, and after a week of futile attempts to understand how to do things with your \"advanced code that makes perfect sense\" will simply decide \"its not here\" and will write his own CCat and CAnimal. That, my friend, is called code doubling, and practices like that give births to \u003ca href\u003d\"http://eterniel.blogspot.com/2008/04/call-of-codethulhu.html\"\u003eCodethulhus that feed on human souls\u003c/a\u003e. Remember: every time you write CFelisCatus, God kills a kitten.\u003c/p\u003e\u003ccode\u003eif(true \u003d\u003d bSucceeded)\u003cbr /\u003e\u003cbr /\u003e{\u003cbr /\u003e\u003cbr /\u003e\u0026nbsp;\u0026nbsp;return XOK;\u003cbr /\u003e\u003cbr /\u003e}\u003cbr /\u003e\u003cbr /\u003eelse\u003cbr /\u003e\u003cbr /\u003e{\u003cbr /\u003e\u003cbr /\u003e\u0026nbsp;\u0026nbsp;return XNOK;\u003cbr /\u003e\u003cbr /\u003e}\u003c/code\u003e \u003cp\u003eAnyone who writes code like this deserves to have both his hands chopped up to the elbow with a big (and dull) viking axe. If you think this is \"readable\", then you are wrong: human eye has a limited focus area for grabbing the code as a whole construct and human patience and concentration has its limits as well: after scrolling through 20 pages of open/close braces you just stop trying to read and understand the code and start to pretend that you are reading it. Unless you are a first-year culinary institute student or an indian programmer that is payed on per-line basis, you should restrain from writing code like that or I will break your face if I see you in public. And I mean it.\u003c/p\u003eCompare the previous code with the code snippets below:\u003ccode\u003eif ( bSucceeded )\u003cbr /\u003e\u003cbr /\u003e\u0026nbsp;\u0026nbsp;return XOK;\u003cbr /\u003e\u003cbr /\u003ereturn XNOK;\u003c/code\u003eOr even with this one:\u003ccode\u003ereturn bSucceeded ? XOK : XNOK;\u003c/code\u003e \u003cp\u003eThe code speaks for itself. It doesn't clutter your screen and is perfectly readable. If you can't understand how ternary operator works — what the hell are you doing at your can-feed-half-of-Africa-with-a-daily-salary engineering job?\u003c/p\u003e\u003cp\u003eDon't get me wrong. Even though I'm a fan of \u003ca href\u003d\"http://web.archive.org/web/20000823040429/http://www.strangecreations.com/library/snippets/Reversi.C\"\u003ereversi.c\u003c/a\u003e, I do not approve that style of coding at work either. But there just should be a limit for code over-stretching.\u003c/p\u003e\u003cdiv style\u003d\"height:20px;\" \u003e\u003c/div\u003e\u003ch3\u003eMy personal guidelines for manly code in C++\u003c/h3\u003e\u003cul\u003e\u003cli\u003e\u003cb\u003eTernary operator\u003c/b\u003e — master it. It turns a lot of code into elegant one-liners:\u003ccode\u003eprintf(\"Ninja mode %s.\", bStealth ? \"enabled\" : \"disabled\");\u003c/code\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cb\u003ePrefer prefix form of incrementation/decrementation\u003c/b\u003e — it's simply faster then postfix. \u003cstrike\u003eAnd with prefix form you can write cool things like this \u003cb\u003e++++++i;\u003c/b\u003e\u003c/strike\u003e\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cb\u003eDon't explicitly compare with NULL or false\u003c/b\u003e: \u003ccode\u003eif (enabled \u003d\u003d true)\u003c/code\u003e looks tremendously stupid.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cb\u003eDelay variable declaration until it's initialization. \u003c/b\u003eThis is simple. This immediately shows the type of a variable, and in case of non-integral variables (even \u003cb\u003estd::string\u003c/b\u003e), you delay constructor and destructor call until it's obvious it's absolutely necessary — the execution point might never reach the code (for example, if it fails on parameter validation and returns).\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cb\u003ePrefer integer constants to string constants\u003c/b\u003e — integer comparisons are many times faster, especially if you use \u003cb\u003estd::string\u003c/b\u003e or similar — remember, you will also need to instantiate the \u003cb\u003estd::string\u003c/b\u003e instance (and destroy it afterwards). Smaller memory footprint, more processor cache hits — there is no reason to use string constants over integer ones. Need strings for debug purposes? Create a static function that returns a \u003cb\u003econst char*\u003c/b\u003e representation of this integer value. Oh, and with integer constants you can use \u003cb\u003eswitch\u003c/b\u003e instead of never-ending blocks of \u003cb\u003eelse if(...)\u003c/b\u003e's\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cb\u003eTrust noone\u003c/b\u003e — always check for the sanity of passed arguments, as well as function returns. Even if you have checked the code of the function (or even wrote it yourself) and are absolutely sure it can't return this specific value. Code is getting rewritten now and then, and trust me — nobody will try to change the behavior of your careless function until it loudly crashes on a big presentation day. And it will be you who will take \u003cstrike\u003esalary cut\u003c/strike\u003e the blame. Code, return values and arguments change — your function should still behave like a spartan and don't bring down the whole server because \"this result is just not possible\". Remember, the name 'bug' comes from the actual, real, material moth that got stuck in a relay of one of the first computers. And remember Adidas marketing slogan.\u003cbr /\u003e\u003cbr /\u003eWhatever happens, spartan code must stand. Or at least \u003ca href\u003d\"http://www.codinghorror.com/blog/archives/001118.html\"\u003ecrash responsibly\u003c/a\u003e.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cb\u003eAvoid braces\u003c/b\u003e \u003ccode\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;} // else\u003cbr /\u003e\u003cbr /\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;} // case\u003cbr /\u003e\u003cbr /\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;} //switch\u003cbr /\u003e\u003cbr /\u003e\u0026nbsp;\u0026nbsp;} //while\u003cbr /\u003e\u003cbr /\u003e\u0026nbsp;} //if( data !\u003d NULL)\u003cbr /\u003e\u003cbr /\u003e} \u003c/code\u003eFamiliar construction? Even comments after braces don't help much. Avoid that. Don't encase the 'main processing' code into precondition-checking nested \u003cb\u003eif\u003c/b\u003e blocks — check for precondition and return when it fails to fulfill. Don't encase single operation into braces. It is not better then indentation. It is worse. The only exception from this rule is a construct where you for some reason have nested \u003cb\u003eif\u003c/b\u003e keywords paired with \u003cb\u003eelse\u003c/b\u003e keywords as well: \u003ccode\u003e\u003cbr /\u003e\u003cbr /\u003ebool intelligentDesign \u003d true, \u003ca href\u003d\"http://www.venganza.org/about/open-letter/\"\u003espagettiMonster\u003c/a\u003e \u003d false;\u003cbr /\u003e\u003cbr /\u003eif(intelligentDesign \u003d\u003d true)\u003cbr /\u003e\u003cbr /\u003e\u0026nbsp;\u0026nbsp;if(spagettiMonster \u003d\u003d true)\u003cbr /\u003e\u003cbr /\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;printf(\"The world was created by God with the help of Flying Spagetti Monster.\\n\");\u003cbr /\u003e\u003cbr /\u003eelse // if intelligentDesign !\u003d true, then the world was created by spagettiMonster alone\u003cbr /\u003e\u003cbr /\u003e\u0026nbsp;\u0026nbsp;printf(\"The world was created by Flying Spagetti Monster alone\\n.\");\u003cbr /\u003e\u003cbr /\u003e\u003c/code\u003eIn cases like that, \u003cb\u003edo\u003c/b\u003e encase even one-keyword blocks into braces. Don't trust indentation alone.\u003c/li\u003e\u003cbr /\u003e\u003cli\u003e\u003cb\u003eNaming convention\u003c/b\u003e. Naming convention is a controversial topic and many battles were lost before they have even started because spartans simply couldn't reach an agreement on a naming convention that should be used. (Read \u003ca href\u003d\"http://en.wikipedia.org/wiki/Hungarian_notation#Notable_opinions\" rel\u003d\"nofollow\"\u003eLinus Torvalds and Bjarne Stroustrup against Hungarian notation\u003c/a\u003e). And since spartans are used to talk short and to a point, we will stop writing this ode to manliness now and cover naming conventions in our next article.\u003c/li\u003e\u003cbr /\u003e\u003c/ul\u003eIf you liked this article, \u003ca href\u003d\"http://feeds.feedburner.com/Eterniel\"\u003esubscribe to this blog's ATOM feed\u003c/a\u003e to make sure you won't miss the end of the story. Meanwhile, feel free to express your opinion by \u003ca href\u003d\"http://eterniel.blogspot.com/2008/07/spartan-programming-real-man-way-to-do.html#comment-form\"\u003ewriting a comment\u003c/a\u003e, or share spartan wisdom with others:\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cbr/\u003e\u003cbr/\u003e\u003ci\u003eThis post was originally posted at \u003ca href\u003d\"http://cranked.me/\"\u003eHome of the Cranked SEO\u003c/a\u003e\u003c/i\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/946428812470639584-6159462280926550761?l\u003dwww.cranked.me' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://www.cranked.me/feeds/6159462280926550761/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://www.cranked.me/2008/07/spartan-programming-real-man-way-to-do.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/6159462280926550761"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/6159462280926550761"},{"rel":"alternate","type":"text/html","href":"http://www.cranked.me/2008/07/spartan-programming-real-man-way-to-do.html","title":"Spartan Programming: A Real Man\u0026#39;s approach to engineering"}],"author":[{"name":{"$t":"Cranked"},"uri":{"$t":"http://www.blogger.com/profile/12112672407202581161"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"01958181988464391374"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"http://2.bp.blogspot.com/_6cdJM5oXUS8/SHZ2L5VukSI/AAAAAAAAFzk/xkJnq85rYOM/s72-Rc/300+Spartans+movie+screenshot.jpg","height":"72","width":"72"},"thr$total":{"$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-946428812470639584.post-2362421504829506079"},"published":{"$t":"2008-07-09T16:51:00.003+02:00"},"updated":{"$t":"2009-05-03T12:58:38.587+02:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"howtos"},{"scheme":"http://www.blogger.com/atom/ns#","term":"hacks"},{"scheme":"http://www.blogger.com/atom/ns#","term":"engineering"},{"scheme":"http://www.blogger.com/atom/ns#","term":"design"},{"scheme":"http://www.blogger.com/atom/ns#","term":"optimization"},{"scheme":"http://www.blogger.com/atom/ns#","term":"blogger_templates"}],"title":{"type":"text","$t":"How to optimize your Blogger post page titles for search engines moving the blog name to the end of the title"},"content":{"type":"html","$t":"\u003cdiv xmlns\u003d\"http://www.w3.org/1999/xhtml\"\u003eBy default, Blogger blog titles look like this:\u003c/div\u003e\u003cbr /\u003e\u003ccenter\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ch2\u003eEterniel: How to optimize your Blogger post page titles for search engines\u003c/h2\u003e\u003c/center\u003e\u003cbr /\u003ehaving your blog title, a semicolon, and the post title. In this order.\u003cbr /\u003eConsidering the Google love for page title to look exactly like a search query (or at least start like this), this is not the optimal layout. And if you are not a self loving git like me, your blog title might not be a one-word nickname of your own, but something like 'A blog about my little kittens'. This will turn your post page titles into something like this:\u003cbr /\u003e\u003cbr /\u003e\u003ccenter\u003e\u003cbr /\u003e\u003cbr /\u003e\u003ch2\u003eA blog about my little kittens: How to optimize your Blogger post page titles for search engines\u003c/h2\u003e\u003c/center\u003e\u003cbr /\u003ewith page titles like this, you might try your luck fighting wikipedia and kittenwar for kitten-related searches, but your 'Blog title optimization' posts can end up somewhere at the end of 17th page of search results.\u003cbr /\u003e\u003cbr /\u003eTo optimize your blog titles, moving the blog name to the end of the title and giving search engines an easy time to index your hottest link-bait post titles:\u003cbr /\u003e\u003col\u003e\u003cli\u003eGo to \u003ca href\u003d\"http://blogger.com/dashboard\"\u003eBlogger dashboard\u003c/a\u003e\u003c/li\u003e\u003cli\u003eChoose Layout-\u0026gt;Edit HTML\u003c/li\u003e\u003cli\u003eSearch for the following code:\u003ccode\u003e\u0026lt;title\u0026gt;\u0026lt;data:blog.pageTitle/\u0026gt;\u0026lt;/title\u0026gt;\u003c/code\u003e\u003c/li\u003e\u003cli\u003eReplace it with the following:\u003ccode\u003e\u0026lt;b:if cond\u003d'data:blog.pageType \u003d\u003d \"index\"'\u0026gt;\u003cbr /\u003e\u0026lt;title\u0026gt;\u0026lt;data:blog.title/\u0026gt;\u0026lt;/title\u0026gt;\u003cbr /\u003e\u0026lt;b:else/\u0026gt;\u003cbr /\u003e\u0026lt;b:if cond\u003d'data:blog.pageType \u003d\u003d \"archive\"'\u0026gt;\u003cbr /\u003e\u0026lt;title\u0026gt;\u0026lt;data:blog.title/\u0026gt; archive: \u0026lt;data:blog.pageName/\u0026gt;\u0026lt;/title\u0026gt;\u003cbr /\u003e\u0026lt;b:else/\u0026gt;\u003cbr /\u003e\u0026lt;title\u0026gt;\u0026lt;data:blog.pageName/\u0026gt; - \u0026lt;data:blog.title/\u0026gt;\u0026lt;/title\u0026gt;\u003cbr /\u003e\u0026lt;/b:if\u0026gt;\u003cbr /\u003e\u0026lt;/b:if\u0026gt;\u003c/code\u003e\u003c/li\u003e\u003cli\u003eThis code does the following (in the following order):\u003cbr /\u003e\u003col\u003e\u003cli\u003eLeaves your main/search/label page titles the same\u003c/li\u003e\u003cli\u003eChanges your archive pages to the following format: \u0026lt;Blog title\u0026gt; archive: \u0026lt;Date\u0026gt;\u003c/li\u003e\u003cli\u003e\u003cb\u003eChanges your post page titles to the following format:\u003c/b\u003e\u0026lt;Post Title\u0026gt; - \u0026lt;Blog Title\u0026gt;\u003c/li\u003e\u003c/ol\u003e\u003c/li\u003e\u003cli\u003eSave the template.\u003c/li\u003e\u003c/ol\u003e\u003cbr /\u003eThis is it. You can experiment with page titles modifying the data between \u0026lt;title\u0026gt; and \u0026lt;/title\u0026gt; tags in the previously mentioned code.\u003cbr /\u003e\u003cbr /\u003eBlogger data:blog.pageType variable possible values:\u003cbr /\u003e\u003cul\u003e\u003cli\u003e\u003cb\u003e\"index\"\u003c/b\u003e — The 'index' pages. This includes your main page, search pages, post by label pages\u003c/li\u003e\u003cli\u003e\u003cb\u003e\"archive\"\u003c/b\u003e — 'Archive' pages. This is what you get if you click on some month/year link in 'Archives' widget.\u003c/li\u003e\u003cli\u003e\u003cb\u003e\"item\"\u003c/b\u003e — Blog post pages. Your post opened in a distinct page dedicated to it.\u003c/li\u003e\u003c/ul\u003e\u003cdiv class\u003d\"blogger-post-footer\"\u003e\u003cbr/\u003e\u003cbr/\u003e\u003ci\u003eThis post was originally posted at \u003ca href\u003d\"http://cranked.me/\"\u003eHome of the Cranked SEO\u003c/a\u003e\u003c/i\u003e\u003cimg width\u003d'1' height\u003d'1' src\u003d'https://blogger.googleusercontent.com/tracker/946428812470639584-2362421504829506079?l\u003dwww.cranked.me' alt\u003d'' /\u003e\u003c/div\u003e"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http://www.cranked.me/feeds/2362421504829506079/comments/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http://www.cranked.me/2008/07/how-to-optimize-your-blogger-post-page.html#comment-form","title":"14 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/2362421504829506079"},{"rel":"self","type":"application/atom+xml","href":"http://www.blogger.com/feeds/946428812470639584/posts/default/2362421504829506079"},{"rel":"alternate","type":"text/html","href":"http://www.cranked.me/2008/07/how-to-optimize-your-blogger-post-page.html","title":"How to optimize your Blogger post page titles for search engines moving the blog name to the end of the title"}],"author":[{"name":{"$t":"Cranked"},"uri":{"$t":"http://www.blogger.com/profile/12112672407202581161"},"email":{"$t":"noreply@blogger.com"},"gd$extendedProperty":{"xmlns$gd":"http://schemas.google.com/g/2005","name":"OpenSocialUserId","value":"01958181988464391374"}}],"thr$total":{"$t":"14"}}]}});