<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>YTechie.com &#187; seo</title>
	<atom:link href="http://www.ytechie.com/category/seo/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ytechie.com</link>
	<description>Productive software development using ASP.NET, C#, Adobe Flex, and other technologies and tools.</description>
	<lastBuildDate>Fri, 06 Nov 2009 21:16:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Removing duplicate page addresses in MVC</title>
		<link>http://www.ytechie.com/2008/10/removing-duplicate-page-addresses-in-mvc.html</link>
		<comments>http://www.ytechie.com/2008/10/removing-duplicate-page-addresses-in-mvc.html#comments</comments>
		<pubDate>Tue, 07 Oct 2008 15:13:29 +0000</pubDate>
		<dc:creator>superjason</dc:creator>
				<category><![CDATA[asp.net]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.ytechie.com/2008/10/removing-duplicate-page-addresses-in-mvc.html</guid>
		<description><![CDATA[As I mentioned before, there are a couple of SEO issues with MVC. I&#8217;ll discuss two ways to get around the trailing slash issue. Recall what the issue was. MVC will happily serve up your URL&#8217;s both with and without a trailing slash:

www.test.com/path 
www.test.com/path/ 

Search engines could potentially index both paths, and count them separately [...]]]></description>
			<content:encoded><![CDATA[<p>As I mentioned before, there are a couple of SEO issues with MVC. I&#8217;ll discuss two ways to get around the trailing slash issue. <a href="http://www.ytechie.com/2008/10/aspnet-mvc-what-about-seo.html" target="_blank">Recall</a> what the issue was. MVC will happily serve up your URL&#8217;s both with and without a trailing slash:</p>
<ul>
<li>www.test.com/path </li>
<li>www.test.com/path/ </li>
</ul>
<p>Search engines could potentially index both paths, and count them separately in their search results. The first solution is to make one of the versions return a 404 (page not found) response code. Hopefully, this would deter anyone from linking to the non-preferred version. We can do this by creating a custom route constraint, by implementing the <strong>IRouteConstraint</strong> interface:</p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:f7d5a192-5e34-47f9-a6f8-3f132961732d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c#">public class TrailingSlashConstraint : IRouteConstraint
{
	private readonly bool _trailingSlash;

	public TrailingSlashConstraint(bool trailingSlash)
	{
		_trailingSlash = trailingSlash;
	}

	public bool Match(HttpContextBase httpContext, Route route, string parameterName,
		RouteValueDictionary values, RouteDirection routeDirection)
	{
		return _trailingSlash == httpContext.Request.Url.LocalPath.EndsWith("/");
	}
}</pre>
</div>
<p>Then, when you define the route, supply an instance of the constraint:</p>
<div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:ccf04113-0099-4c73-ad6b-5120c382c1a4" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre name="code" class="c#">routes.MapRoute("mobileVersion", "m",
	new { controller = "home", action = "mobile", id = "" },
	new TrailingSlashConstraint(false));</pre>
</div>
<p>The second solution is to redirect the non-preferred version to the preferred version. We can do this by either creating a custom HTTP Module, or by using a canned product like the free <a href="http://urlrewriter.net/" target="_blank" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/urlrewriter.net/?referer=');">UrlRewriter.NET</a>.</p>
<p><strong>Should I use a trailing slash or not?</strong></p>
<p>This is one of the problems with MVC. In ASP.NET webforms, you could use a default page to avoid having to specify a file in the URL. This gets you the nice MVC style paths. The good part was that if someone accessed the version without a trailing slash, it would automatically redirect to the version with the trailing slash. So in ASP.NET WebForms, the trailing slash was obviously preferred since it was the default behavior.</p>
<p>Now, in ASP.NET MVC, they decided to make the default behavior the <strong>opposite</strong>. It does serve up both versions as I mentioned, but when it <em>generates</em> links, they don&#8217;t have a trailing slash.</p>
<p>If you&#8217;re long term solution is to use MVC, I recommend dropping the trailing slashes, just to avoid the pain. I&#8217;m really hoping that by the time the final version of MVC comes out, they&#8217;ll give us an option to define routes that should have a trailing slash.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2008/10/removing-duplicate-page-addresses-in-mvc.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASP.NET MVC, What about SEO?</title>
		<link>http://www.ytechie.com/2008/10/aspnet-mvc-what-about-seo.html</link>
		<comments>http://www.ytechie.com/2008/10/aspnet-mvc-what-about-seo.html#comments</comments>
		<pubDate>Wed, 01 Oct 2008 20:26:51 +0000</pubDate>
		<dc:creator>superjason</dc:creator>
				<category><![CDATA[asp.net]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.ytechie.com/2008/10/aspnet-mvc-what-about-seo.html</guid>
		<description><![CDATA[I&#8217;ve started working the the latest preview of the ASP.NET MVC framework. I&#8217;m completely converting one of my sites, because learning by doing is typically the best way. Unfortunately, I&#8217;ve run into some alarming SEO (Search Engine Optimization) issues with this new paradigm (or more specifically, the Microsoft implementation).

Duplicate Content
Duplicate content is a major issue. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started working the the latest preview of the ASP.NET MVC framework. I&#8217;m completely converting one of my sites, because learning by <em>doing </em>is typically the best way. Unfortunately, I&#8217;ve run into some alarming SEO (Search Engine Optimization) issues with this new paradigm (or more specifically, the Microsoft implementation).</p>
<p align="center"><a href="http://www.ytechie.com/post-images/2008/10/istock-000006003382xsmall.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://www.ytechie.com/post-images/2008/10/istock-000006003382xsmall-thumb.jpg" border="0" alt="Duplicate Ducks!" width="184" height="244" /></a></p>
<p><strong>Duplicate Content</strong></p>
<p><a rel="nofollow" href="http://www.webconfs.com/duplicate-content-filter-article-1.php" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.webconfs.com/duplicate-content-filter-article-1.php?referer=');">Duplicate content</a> is a major issue. If a search engine (Google, which we&#8217;re primarily concerned with) finds multiple identical pages, it could be seen as a spam technique. Google likes original content, and penalizes duplicate content.</p>
<p>The problem is that the ASP.NET MVC default routing is too forgiving. If I have a page with this address: &#8220;/controller/action/id&#8221;, the routing engine happily serves it up at &#8220;/controller/action/id/&#8221;. There is no reason to not be strict on this. In ASP.NET WebForms, if you forget the trailing slash, it will automatically perform a 301 (permanent) redirect to the version with the trailing slash.</p>
<p>ASP.NET MVC has a bug (I&#8217;m calling it that) that won&#8217;t let you define a URL as requiring a trailing slash. Below, I&#8217;ve defined a route as a sample. In the URL to match, I have a trailing slash. In the routing code, the trailing slash is removed when it&#8217;s added to the routing table. This also has the side-effect of <em>generating</em> the URL&#8217;s <em>without</em> a trailing slash.</p>
<div id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:8f95410d-9fa2-4209-88c4-ede04eecc088" class="wlWriterSmartContent" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre class="c#">routes.MapRoute(
	"Legacy-Firefox",
	"Firefox-Extension/",
	new { controller = "Home", action = "Firefox", id = "" } );</pre>
</div>
<p>Since routes can be configured to reuse actions and controllers, it makes more paths to follow. If I again use the route defined above, I end up with all of these valid addresses that could potentially be linked to and indexed:</p>
<ul>
<li>a.com/Firefox-Extension</li>
<li>a.com/Firefox-Extension/</li>
<li>a.com/Home/Firefox</li>
<li>a.com/Home/Firefox/</li>
<li>a.com/Home/Firefox/anythingyouwant</li>
</ul>
<p><strong>If you&#8217;re lucky,</strong> Google won&#8217;t penalize duplicate content. However, if Google indexes the same content using multiple URL&#8217;s, you won&#8217;t get the benefit of focusing the PageRank. A similar situation occurs with you have a site that can be addressed like &#8220;cnn.com&#8221; and &#8220;www.cnn.com&#8221;. They counted as separate pages, that end up competing for good rank.</p>
<p><strong>Legacy URL&#8217;s</strong></p>
<p>I&#8217;m sure there is a large group of people that are anxiously awaiting to take advantage of the new MVC style development. Many of them will undoubtedly have existing URL&#8217;s they want to preserve.</p>
<p>There are a couple of ways to handle this issue. The search engines would prefer that your URL&#8217;s simply remain the same. This is possible, but requires some fancy routing. The SEO community highly recommends this approach (with good cause).</p>
<p>Another way to handle it is to adopt the new REST style URL&#8217;s that typically make the most sense with an MVC approach: &#8220;/controller/action/id&#8221;. Then, setup 301 redirects from the old addresses to the new one&#8217;s. <a rel="nofollow" href="http://blog.eworldui.net/post/2008/04/ASPNET-MVC---Legacy-Url-Routing.aspx" target="_blank" onclick="pageTracker._trackPageview('/outgoing/blog.eworldui.net/post/2008/04/ASPNET-MVC---Legacy-Url-Routing.aspx?referer=');">This article</a> discusses the technical details. In theory, this should be the best scenario. However, Google themselves say to get the incoming links pointed to the new addresses ASAP. The truth is, this solution sucks. I&#8217;ve actually done this with a site. It was search engine suicide for a couple of months. I eventually got my old position back, <strong>but lost a significant amount of revenue because of it</strong>.</p>
<p>Yet another way that I found is to set up multiple routes so that the content is accessible with both the old and new addresses. If you&#8217;ve been paying attention, you&#8217;ll know that this counts as duplicate content, and is <strong>very, very bad</strong>. I was in shock when <a rel="nofollow" href="http://www.dimecasts.net/Casts/CastDetails/11" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dimecasts.net/Casts/CastDetails/11?referer=');">I found this approach being advocated</a>.</p>
<p><strong>Conclusion</strong></p>
<p>I&#8217;m not saying the routing system is completely wrong, I just think it would be set up so that the easy way of migrating a site is the correct way, or as close to it as possible. I don&#8217;t want to have to write custom routing. At the very least, come up with a way to designate that a particular action has a single path (and cancel out additional paths in other routes). It would also be nice if there was a way to use the old style urlMapping section in the web.config for legacy URL&#8217;s.</p>
<p>If I&#8217;m completely wrong about how the routing works, let me know. It&#8217;s difficult to find good information (which is understandable right now), and I&#8217;m admittedly still in an early learning stage.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2008/10/aspnet-mvc-what-about-seo.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Google officially indexing flash sites &#8211; good news?</title>
		<link>http://www.ytechie.com/2008/07/google-officially-indexing-flash-sites-good-news.html</link>
		<comments>http://www.ytechie.com/2008/07/google-officially-indexing-flash-sites-good-news.html#comments</comments>
		<pubDate>Tue, 01 Jul 2008 14:47:40 +0000</pubDate>
		<dc:creator>superjason</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.ytechie.com/2008/07/google-officially-indexing-flash-sites-good-news.html</guid>
		<description><![CDATA[According to the official Google blog, they&#8217;re now officially indexing flash content. According to my SEO expert, they&#8217;ve been doing this for some time. However, I wonder if making this official is a good news.
 
One of the big arguments against heavily using flash on your site was that it certainly wouldn&#8217;t help you in [...]]]></description>
			<content:encoded><![CDATA[<p>According to the official Google blog, they&#8217;re now <a href="http://googleblog.blogspot.com/2008/06/google-learns-to-crawl-flash.html" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/googleblog.blogspot.com/2008/06/google-learns-to-crawl-flash.html?referer=');">officially indexing flash content</a>. According to my SEO expert, they&#8217;ve been doing this for some time. However, I wonder if making this official is a good news.</p>
<p align="center"><img height="151" alt="image" src="http://www.ytechie.com/post-images/2008/07/image.png" width="151" border="0" /> </p>
<p>One of the big arguments against heavily using flash on your site was that it certainly wouldn&#8217;t help you in Google. Now, many will see that argument as being gone. We can now look forward to more annoying flash content, and <em>maybe</em> even some flash that is used correctly.</p>
<blockquote><p>With great power comes great responsibility</p>
<p>-Stan Lee</p>
</blockquote>
<p>If you think you can now cheat and use flash content instead of HTML, you&#8217;re probably wrong. There are many questions that have now been raised (<a href="http://googlewebmastercentral.blogspot.com/2008/06/improved-flash-indexing.html" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/googlewebmastercentral.blogspot.com/2008/06/improved-flash-indexing.html?referer=');">some have been answered</a>):</p>
<ul>
<li>Does each flash file count as a page?</li>
<li>Do links to and from flash content count for PageRank?</li>
<li>Do you really want ALL of the text in your flash files indexed?</li>
<li>Does the SWF get executed in any way, so that the <em>generated</em> text can be indexed?</li>
</ul>
<p>It&#8217;s going to take a while before Google gets good at indexing flash files. It&#8217;s also going to take some time for people to really understand how the process is working. I wouldn&#8217;t be too quick to convert something to flash just because Google can see it now.</p>
<p>Only use flash when it makes sense to your users. For example, <a href="http://www.choiceshirts.com/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.choiceshirts.com/?referer=');">Choice Shirts</a> has an HTML website, but their <a href="http://www.choiceshirts.com/design_your_own/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.choiceshirts.com/design_your_own/?referer=');">shirt designer</a> is flash (<a href="http://www.adobe.com/products/flex/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.adobe.com/products/flex/?referer=');">Flex</a> actually). If their designer doesn&#8217;t get indexed, it&#8217;s not a big deal. The designer is there for usability, not for the search engines.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2008/07/google-officially-indexing-flash-sites-good-news.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An intro to Search Engine Optimization (SEO)</title>
		<link>http://www.ytechie.com/2008/06/an-intro-to-search-engine-optimization-seo.html</link>
		<comments>http://www.ytechie.com/2008/06/an-intro-to-search-engine-optimization-seo.html#comments</comments>
		<pubDate>Tue, 17 Jun 2008 13:38:37 +0000</pubDate>
		<dc:creator>superjason</dc:creator>
				<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.ytechie.com/2008/06/an-intro-to-search-engine-optimization-seo.html</guid>
		<description><![CDATA[I&#8217;m going to assume that a fair number of my readers have a website, blog, or other web presence. Many of you have probably built a website or two. I&#8217;m going to give you some quick SEO tips that I have found to be most important.
 
Our resident SEO expert spends nearly every day researching [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to assume that a fair number of my readers have a website, blog, or other web presence. Many of you have probably built a website or two. I&#8217;m going to give you some quick SEO tips that I have found to be most important.</p>
<p><img height="231" alt="Success-Chart" src="http://www.ytechie.com/post-images/2008/06/success-chart.jpg" width="231" border="0" /> </p>
<p>Our resident SEO expert spends nearly every day researching the current trends in SEO. If you try to do the same, and you&#8217;re the only one running your site, you won&#8217;t have any time to improve your site and come up with new content. You need to determine the <em>right balance</em> of time to make your site a success.</p>
<ul>
<li><strong>Define your goals</strong> &#8211; The first thing you need to do is ask yourself what the purpose of your site is:
<ul>
<li>Are you trying to sell something online? </li>
<li>Are you trying to get leads?</li>
<li>Is your site simply a place you direct people to for more information? </li>
</ul>
</li>
<li><strong>Focus on Google</strong> &#8211; Google is the by far, the most popular search engine. Most likely, you&#8217;ll want to focus your attention on them.</li>
<li><strong>Make life easy for Google</strong> &#8211; If you expect Google to make decisions, you might not like the results.
<ul>
<li>Avoid duplicate content &#8211; If you have the same content on more than one page, you may be penalized. At the very least, Google won&#8217;t know which content to give you credit for.</li>
<li>Make your HTML as simple as possible. A well formed XHTML design will go a long way.</li>
</ul>
</li>
<li><strong>Optimize the way your pages look in the search listings</strong> &#8211; Google will only show the first 60 or so characters in your title, so keep that in mind. Make sure you DO use <a href="http://www.highrankings.com/metadescription" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.highrankings.com/metadescription?referer=');">meta description tags</a> in your pages, because Google WILL use those in it&#8217;s listings. Remember, you&#8217;re not just optimizing for the Google index, you also want your titles and descriptions to entice users to click on your result.</li>
<li><strong>Write original content</strong> &#8211; Google is looking for original content, and it has often been said that content is king. Even if Google isn&#8217;t giving you points for original content, Google is looking for information that is relative to the times. If you&#8217;re consistently writing good, original, and up-to-date content, Google will eat it up.</li>
<li><strong>Create a sitemap</strong> &#8211; <a href="http://www.sitemaps.org/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.sitemaps.org/?referer=');">Sitemaps</a> allow you to give the search engines a &quot;map&quot; to all of your pages, which ensures that they&#8217;ll be found as quickly as possible. It also gives you an opportunity to specify how often pages change. If you&#8217;re using Wordpress, you can use an <a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/?referer=');">automated sitemap generator</a>.</li>
<li><strong>Get relevant links</strong> &#8211; Google is built on a reputation system. When reputable, related sites link to you, Google will realize the popularity of your pages. The best way to get good links is to write good content. Another way is to make friends in the community, that have similar interests. They might be willing to add your site to their blogroll, or mention you in their content.</li>
<li><strong>Tell Google what to NOT index</strong> &#8211; You can create a &quot;robots.txt&quot; file that tells the search engines what they can, and cannot index. You want to filter out all of the pages that are not original content. For example, on this blog, I filter out everything except the <a href="http://www.ytechie.com" rel="nofollow">front page</a>, <a href="http://www.ytechie.com/about" rel="nofollow">about page</a>, and the posts themselves. You can see my <a href="http://www.ytechie.com/robots.txt" rel="nofollow">robots file here</a>. I have talked about <a href="http://www.ytechie.com/2008/04/avoiding-duplicate-content-with-your-site-or-blog.html">using a robots.txt file to avoid duplicate content</a> in the past.</li>
<li><strong>Use the Google webmaster tools</strong> &#8211; If Google is having problems indexing your site, you&#8217;ll certainly want to know why. I check the <a href="https://www.google.com/webmasters/tools/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.google.com/webmasters/tools/?referer=');">webmaster tools</a> daily to make sure that there are not any problems.</li>
<li><strong>Do what Google asks</strong> &#8211; Google publishes their <a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;answer=35769" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.google.com/support/webmasters/bin/answer.py?hl=en_amp_answer=35769&amp;referer=');">recommended webmaster guidelines</a>. You definitely don&#8217;t want to do something that Google explicitly forbids. Your playing their game, you need to play by their rules.</li>
<li><strong>Have simple URL&#8217;s</strong> &#8211; Your URL&#8217;s should be human readable, and more importantly, should be simple enough that search engines won&#8217;t get confused. Avoid URL parameters, and instead opt for path or page based names. For example, <a href="http://www.yoursite.com/posts/seo-tips.html" onclick="pageTracker._trackPageview('/outgoing/www.yoursite.com/posts/seo-tips.html?referer=');">http://www.yoursite.com/posts/seo-tips.html</a>.</li>
</ul>
<p>If you have the time to take your SEO skills to the next level, there are immense resources available. The best way to find them is to simply do a Google search. The sites that do the best job with SEO should appear at the top!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2008/06/an-intro-to-search-engine-optimization-seo.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Optimizing new Blogger title tags for SEO</title>
		<link>http://www.ytechie.com/2008/04/optimizing-new-blogger-title-tags-for-seo.html</link>
		<comments>http://www.ytechie.com/2008/04/optimizing-new-blogger-title-tags-for-seo.html#comments</comments>
		<pubDate>Mon, 21 Apr 2008 10:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[blogger]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://207.36.235.13/2008/04/optimizing-new-blogger-title-tags-for-seo.html</guid>
		<description><![CDATA[By default, the title tags that Blogger uses are less than ideal. Search engines put a lot of value on your title tags, so it&#8217;s worth taking some time to make sure that they&#8217;re set up correctly.
When I initially set up my blog, I set the title to &#34;Young Technologies Tech Blog&#34;. Look what happened [...]]]></description>
			<content:encoded><![CDATA[<p>By default, the title tags that Blogger uses are less than ideal. Search engines put a lot of value on your title tags, so it&#8217;s worth taking some time to make sure that they&#8217;re set up correctly.</p>
<p>When I initially set up my blog, I set the title to &quot;Young Technologies Tech Blog&quot;. Look what happened in the search results:</p>
<p align="center"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="380" alt="Blog Google Results" src="/post-images/2008/04/blog-google-results.png" width="363" border="0" /> </p>
<p align="left">YUCK! There are <strong>two</strong> <strong>major</strong> problems here. The first is that the titles are not at all useful to a human. How would you expect anyone to click on titles like this?</p>
<p align="left">The second problem is that my title tags don&#8217;t tell Google anything interesting about my site. You want the search engines to figure out the keywords in each of your pages, and having those keywords in the title reinforces that.</p>
<p align="left">In &quot;classic&quot; blogger, you would simply use</p>
<pre class="xml" name="code">&lt;title&gt;&lt;br /&gt;&lt;mainorarchivepage&gt;&lt;$BlogTitle$&gt;&lt;/mainorarchivepage&gt;&lt;br /&gt;&lt;itempage&gt;&lt;blogger&gt;&lt;$BlogItemTitle$&gt;&lt;/blogger&gt; - &lt;$BlogTitle$&gt;&lt;/itempage&gt;&lt;br /&gt;&lt;/title&gt;</pre>
<p>instead of:</p>
<pre class="xml" name="code">&lt;title&gt;&lt;$BlogPageTitle$&gt;&lt;/title&gt;</pre>
<p>This would use the title of the post item as the title of the page. The problem is the &quot;new&quot; blogger has a completely different template system. Be sure to back up your template before editing it! Here is what I did, step-by-step:</p>
<ul>
<li>Shorten your actual blog title. I was unable to figure out how to remove the blog title from each post page, without losing the post title. Unfortunately Blogger doesn&#8217;t have a token for the item post title. For my blog, I changed the title to &quot;YTechie.com&quot;, which I think is a reasonable prefix for my post page titles. </li>
<li>Customize the title tag in your template. Do this by editing the HTML, expand the widget templates, and put the following code in place of the existing title tag. This will allow you to have a custom title just for the front page. </li>
</ul>
<pre class="xml" name="code">&lt;b:if cond='data:blog.pageType == &amp;quot;index&amp;quot;'&gt;
 &lt;title&gt;Front Page Title (change this)&lt;/title&gt;
&lt;b:else/&gt;
 &lt;title&gt;&lt;data:blog.pageTitle/&gt;&lt;/title&gt;
&lt;/b:if&gt;</pre>
<ul>
<li>In the code above, put in the title you want for the front page. Try to keep it around or under 66 characters. For additional guidelines, <a href="http://www.seologic.com/faq/title-tags.php" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.seologic.com/faq/title-tags.php?referer=');">consult this guide</a>. </li>
<li>Since you changed the title of your blog to something shorter, that will show up in the header as well. To customize the header text, replace this: </li>
</ul>
<pre class="xml" name="code">&lt;b:if cond='data:blog.url == data:blog.homepageUrl'&gt;
   &lt;data:title/&gt;
 &lt;b:else/&gt;
   &lt;a expr:href='data:blog.homepageUrl'&gt;&lt;data:title/&gt;&lt;/a&gt;
 &lt;/b:if&gt;</pre>
<p>With this:</p>
<pre class="xml" name="code">&lt;b:if cond='data:blog.url == data:blog.homepageUrl'&gt;
   This is my header title (change this)
&lt;b:else/&gt;
   &lt;a expr:href='data:blog.homepageUrl'&gt;This is my header title (change this)&lt;/a&gt;
&lt;/b:if&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2008/04/optimizing-new-blogger-title-tags-for-seo.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Avoiding duplicate content with your site or blog</title>
		<link>http://www.ytechie.com/2008/04/avoiding-duplicate-content-with-your-site-or-blog.html</link>
		<comments>http://www.ytechie.com/2008/04/avoiding-duplicate-content-with-your-site-or-blog.html#comments</comments>
		<pubDate>Fri, 18 Apr 2008 10:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[blogger]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://207.36.235.13/2008/04/avoiding-duplicate-content-with-your-site-or-blog.html</guid>
		<description><![CDATA[One of the most important rules in SEO (Search engine optimization) is avoiding duplicate content. Google has some information on their page about how they handle duplicate content. Unfortunately, the Googlebot is rarely smart enough to know which content is original. Google wants to avoid users that copy and/or republish someone else&#8217;s work simply to [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most important rules in SEO (Search engine optimization) is avoiding duplicate content. Google has some <a href="http://www.google.com/support/webmasters/bin/answer.py?answer=66359" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.google.com/support/webmasters/bin/answer.py?answer=66359&amp;referer=');">information on their page</a> about how they handle duplicate content. Unfortunately, the Googlebot is rarely smart enough to know which content is original. Google wants to avoid users that copy and/or republish someone else&#8217;s work simply to get content for their site.</p>
<p>You also want Google find pages on your site that have substance, and that are not just a copy of content from one of your other pages.</p>
<p align="center"><img style="border: 0px none ;" alt="printer" src="/post-images/2008/04/printer.png" width="155" border="0" height="213" /> </p>
<p>So how do you avoid it on your site? The first step is to identify potential pages that have duplicate content. It&#8217;s probably happening without you even being aware of it.</p>
<p>Type this into Google: site:http://www.<strong>yoursite</strong>.com</p>
<p>I&#8217;m using blogger, and by default here are some pages that are indexed that should not be:</p>
<ul>
<li>http://www.ytechie.com/2008/04/aspnet-linkbutton-and-seo.html?widgetType=BlogArchive&amp;widgetId=BlogArchive1&amp;action=toggle&amp;dir=close&amp;toggle=YEARLY-1199167200000&amp;toggleopen=MONTHLY-1207026000000  </li>
<li>http://www.ytechie.com/2008_03_01_archive.html</li>
</ul>
<p>Now that we&#8217;ve identified the offending pages, we can create or modify our <strong>robots.txt</strong> file, at the root of our site.</p>
<p>Here is what I could add to my robots.txt to block those pages:</p>
<pre class="csharpcode">Disallow: /*?
Disallow: /*_archive.html$</pre>
<p>Once you&#8217;ve updated your robots.txt file, you can use the <a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;answer=35237" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.google.com/support/webmasters/bin/answer.py?hl=en_amp_answer=35237&amp;referer=');">Google webmaster tools to test it</a>. For more information on how to edit your robots file, including syntax, <a href="http://www.google.com/support/webmasters/bin/answer.py?answer=40360&amp;ctx=related" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.google.com/support/webmasters/bin/answer.py?answer=40360_amp_ctx=related&amp;referer=');">consult Google</a>.</p>
<p>There is one big problem. If you&#8217;re using a service like Blogger (like this blog), you can&#8217;t edit your robots file. There has been talk of adding support, but we have to deal with what is available.</p>
<p>The best I&#8217;ve been able to come up with, is adding this into the head (look for &lt;head&gt;) of my template code:</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">b:if</span> <span class="attr">cond</span>='<span class="attr">data:blog</span>.<span class="attr">pageType</span> == <span class="kwrd">"archive"</span><span class="kwrd">&gt;</span>
 <span class="kwrd">&lt;</span><span class="html">meta</span> <span class="attr">name</span><span class="kwrd">="robots"</span> <span class="attr">content</span><span class="kwrd">="noindex, nofollow"</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">b:if</span><span class="kwrd">&gt;</span></pre>
<p>This adds a noindex and nofollow meta tag to the generated archive pages. I have not yet figured out how to remove pages that contain parameters (?param=value). If anyone has a way to do it, please let me know! I&#8217;ve actually been considering removing the archive widget to solve it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2008/04/avoiding-duplicate-content-with-your-site-or-blog.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ASP.NET LinkButton and SEO</title>
		<link>http://www.ytechie.com/2008/04/aspnet-linkbutton-and-seo.html</link>
		<comments>http://www.ytechie.com/2008/04/aspnet-linkbutton-and-seo.html#comments</comments>
		<pubDate>Mon, 07 Apr 2008 12:53:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[asp.net]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://207.36.235.13/2008/04/aspnet-linkbutton-and-seo.html</guid>
		<description><![CDATA[A common question that comes up, is what do LinkButton&#8217;s do for SEO (Search Engine Optimization)? Well, let&#8217;s take a look what a LinkButton actually renders for HTML:
&#60;a href=&#34;javascript:__doPostBack('ctl01','')&#34;&#62;Click me!&#60;/a&#62;
Notice that it&#8217;s simply a standard hyperlink with a JavaScript call. Typically, the search engines are only going to look at your HTML. They&#8217;re not going [...]]]></description>
			<content:encoded><![CDATA[<p>A common question that comes up, is what do <a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.aspx" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.aspx?referer=');">LinkButton&#8217;s</a> do for <a href="http://en.wikipedia.org/wiki/Search_engine_optimization" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Search_engine_optimization?referer=');">SEO</a> (Search Engine Optimization)? Well, let&#8217;s take a look what a LinkButton actually renders for HTML:</p>
<pre class="javascript" name="code">&lt;a href=&quot;javascript:__doPostBack('ctl01','')&quot;&gt;Click me!&lt;/a&gt;</pre>
<p>Notice that it&#8217;s simply a standard hyperlink with a JavaScript call. Typically, the search engines are only going to look at your HTML. They&#8217;re not going to evaluate the JavaScript. Doing so would be a big can of worms.</p>
<p align="center"><img height="212" alt="WWW Web" src="/post-images/2008/04/www-web.png" width="316" border="0" /> </p>
<p>So basically, the LinkButton is going to be <strong>invisible</strong> to the search engines. At most, they might look at the words in the link text, and consider them as part of the rest of the content.</p>
<p>Remember, the purpose of the LinkButton to be a replacement for the ASP.NET Button control, but with the look of a hyperlink.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ytechie.com/2008/04/aspnet-linkbutton-and-seo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
