
<?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>VisibleFactors &#187; ajax</title>
	<atom:link href="http://visiblefactors.com/blog/tag/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://visiblefactors.com</link>
	<description>Online Marketing, Product Strategy</description>
	<lastBuildDate>Sun, 16 Oct 2011 21:20:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>AJAX &amp; SEO: A strategic approach to rankings</title>
		<link>http://visiblefactors.com/blog/618-ajax-seo-ranking-crawling-indexing/</link>
		<comments>http://visiblefactors.com/blog/618-ajax-seo-ranking-crawling-indexing/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 16:55:41 +0000</pubDate>
		<dc:creator>tonyadam</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Slideshow]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[progressive enhancement]]></category>

		<guid isPermaLink="false">http://tonyadam.com/blog/?p=618</guid>
		<description><![CDATA[Tweet Dealing with the limitations of AJAX and Flash can be an SEOs worst nightmare. There are so many issues that come into play &#038; usually you can deal with many AJAX SEO issues by developing Progressively Enhanced code. While, I&#8217;ve written about how to address crawling and indexing with AJAX and SEO. I wanted [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton618" class="tw_button" style="float:left;margin-right:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fbit.ly%2FjA0f3j&amp;via=visiblefactors&amp;text=AJAX%20%26%23038%3B%20SEO%3A%20A%20strategic%20approach%20to%20rankings&amp;related=visiblefactors:Follow+us+on+twitter+%28%40visiblefactors%29.&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Fvisiblefactors.com%2Fblog%2F618-ajax-seo-ranking-crawling-indexing%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://visiblefactors.com/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>
<p>Dealing with the limitations of AJAX and Flash can be an SEOs worst nightmare. There are so many issues that come into play &#038; usually you can deal with many AJAX SEO issues by developing Progressively Enhanced code. While, I&#8217;ve written about how to address <a href="http://tonyadam.com/blog/89-ajax-and-non-javascript-experiences-for-seo-friendly-websites/">crawling and indexing with AJAX and SEO</a>. I wanted to take a little bit of a deep dive into this again, along with the bigger issue, <strong>ranking</strong>. </p>
<p><span id="more-618"></span></p>
<h3>The URL Problem:</h3>
<p>As the web becomes more and more dynamic, especially with the introduction of the stream, real-time updates, etc., the ability to crawl and index that content becomes a problem. AJAX introduced a problem to search engines by dynamically changing page or website content with URL Fragments, or hash marks, &#8220;#&#8221;. this becomes a problem because traditionally (esp. in web 1.0 days) hash marks were used as an anchors to content on a single page. Since search engines would already crawl the page, they would ignore the URL fragments (&#8220;#&#8221;) because they were already crawling the page.</p>
<p>For example, these two URLs would be seen as the same and would have no reason to crawl the url fragment because it was already being done.:</p>
<ul>
<li>http://www.tonyadam.com/faq</li>
<li>http://www.tonyadam.com/faq#question-10</li>
</ul>
<h3>Fixing Crawling and Indexing through Progressive Enhancement</h3>
<p>While AJAX is not new to the web, there is a problem that it introduces to search engine crawlability and indexing that wasn&#8217;t around way back when. We now have websites that dynamically generate content within it&#8217;s current page architecture. So, sites started implementing AJAX as a way to dynamically change the page content without page refreshes and therefore create much nicer (and sexier) user experiences, as they wouldn&#8217;t have to wait for a new page to load, etc.</p>
<p>That said, you are left with this URL fragment that a search engine was not built to crawl and index. So, it becomes increasingly important to use web standard techniques like <a href="http://www.alistapart.com/articles/understandingprogressiveenhancement/">Progressive Enhancement</a> and leveraging the <a href="http://domscripting.com/presentations/xtech2006/">Hijax method</a>. Most technology teams adopt these methods and should be standard practice across technology and engineering functions.</p>
<h3>Relevancy and Ranking Problems that arise</h3>
<p>As more and more of the web becomes dynamic, being strategic in the uses of the dynamic content is important. The way we rewrite URLs and change page content is extremely important to having <strong>relevant</strong> content show up in the Search Engine Results Pages (SERPs). Just like building an entire site in Flash can be detrimental to your organic search traffic, building an entire site in AJAX can do the same thing. The reason being is that you end up with URL structures that contain #&#8217;s (URL Fragments) all over the place. </p>
<p><strong>The drawbacks with #&#8217;s and rankings</strong><br />
This becomes a problem when people like bloggers, writers, site owners, etc. start linking to your content with #&#8217;s in the URLs. Search engines would ignore everything after the # and assume all links go to the homepage. For example,If I decide to build an entire site on basketball, so, assuming I want to rank for terms like basketball news, basketball scores, etc., I would probably have them in my top nav. </p>
<p>If I was to have the content refresh using AJAX, here is what my URL structure would look like:</p>
<ul>
<li>http://www.basketball.com/</li>
<li>http://www.basketball.com/#/news/</li>
<li>http://www.basketball.com/#/scores/</li>
<li>http://www.basketball.com/#/players/</li>
<li>http://www.basketball.com/#/stats/</li>
</ul>
<p>Or deeper sections of the site like</p>
<ul>
<li>http://www.basketball.com/#/players/ray-allen/stats/</li>
<li>http://www.basketball.com/#/players/phil-jackson/awards/</li>
</ul>
<p>Do you see the problem with the URL Structure? If this site was purely built with AJAX, as mentioned above, anybody that links to my site would link to http://www.basketball.com/ and I would get no deep content links. If I get links to my homepage with obscure keywords like &#8220;Ray Allen player stats&#8221; or &#8220;Phil Jackson coaching awards&#8221; and since everything after the # is ignored, those keywords would then be pointed at the homepage, which is not <strong>search engine relevant</strong>.</p>
<p><strong>Using #&#8217;s and AJAX to your advantage</strong><br />
Alternatively, there are situations where it makes more sense not to have unique URLs on content to conserve link equity and target at one main page. For example, I would not want a URL for various filters on a users stream in their profile because I would dilute the link equity to those stream items.</p>
<p>If I was to have a unique URL and link to the following, I would dilute link equity:</p>
<ul>
<li>http://www.myspace.com/tonyadam/stream/all</li>
<li>http://www.myspace.com/tonyadam/stream/photos</li>
<li>http://www.myspace.com/tonyadam/stream/videos</li>
</ul>
<p>In this situation, I would rather have URLs that conserve the link equity to the main profile url:</p>
<ul>
<li>http://www.myspace.com/tonyadam/#/stream/all</li>
<li>http://www.myspace.com/tonyadam/#/stream/photos</li>
<li>http://www.myspace.com/tonyadam/#/stream/videos</li>
</ul>
<p>By doing so, links to the # URLs will then all be targeted at the main URL <strong>http://www.myspace.com/tonyadam/</strong> which will create more link equity to a stronger, more relevant page.</p>
<p>Now, we could sit here all day and talk about all the ways to manipulate results by sending links to versions of the URL that are rewritten, but, that is not a scalable tactic, is temporary, and could lead to search penalties. At the end of the day, the goal should be to create a dynamic website that is <strong>relevant search engines and users, that creates the most holistic experience</strong>. </p>
<p>Think of it this way, after all your hardwork and innovation, <strong>if you can&#8217;t get users to your website, what does the shiny new object matter anyway?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://visiblefactors.com/blog/618-ajax-seo-ranking-crawling-indexing/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>AJAX and Non-JavaScript Experiences for SEO friendly websites</title>
		<link>http://visiblefactors.com/blog/89-ajax-and-non-javascript-experiences-for-seo-friendly-websites/</link>
		<comments>http://visiblefactors.com/blog/89-ajax-and-non-javascript-experiences-for-seo-friendly-websites/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 17:12:10 +0000</pubDate>
		<dc:creator>tonyadam</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[non-javascript]]></category>

		<guid isPermaLink="false">http://tonyadam.com/blog/?p=98</guid>
		<description><![CDATA[Tweet With the &#8220;Web 2.0&#8243; world that we live in, companies are inclined to create &#8220;snazzy&#8221; new AJAX experiences for users. I have been dubbing this the AJAX Dilemma lately because organizations/companies/website owners are creating sites that are not accessible and SEO friendly. They are risking crippling their businesses in the areas of search traffic [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton89" class="tw_button" style="float:left;margin-right:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fbit.ly%2FmtBaWC&amp;via=visiblefactors&amp;text=AJAX%20and%20Non-JavaScript%20Experiences%20for%20SEO%20friendly%20websites&amp;related=visiblefactors:Follow+us+on+twitter+%28%40visiblefactors%29.&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Fvisiblefactors.com%2Fblog%2F89-ajax-and-non-javascript-experiences-for-seo-friendly-websites%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://visiblefactors.com/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>
<p>With the &#8220;Web 2.0&#8243; world that we live in, companies are inclined to create &#8220;snazzy&#8221; new AJAX experiences for users. I have been dubbing this the AJAX Dilemma lately because organizations/companies/website owners are creating sites that are not accessible and <strong>SEO friendly</strong>. They are risking crippling their businesses in the areas of search traffic by not planning SEO into the lifecycle of the product.  Ensuring there is a Non-Javascript experience for search engines and accessibility is not a new practice. Creating sites using &#8220;<a rel="nofollow" href="http://en.wikipedia.org/wiki/Progressive_enhancement" target="_blank">Progressive Enhancement</a>&#8221; and using &#8220;<a rel="nofollow" href="http://en.wikipedia.org/wiki/Unobtrusive_JavaScript" target="_blank">Unobtrusive JavaScript</a>&#8221; has been around for quite some time.By creating web standard code and using the methods above, you are not sacrificing SEO for User Experience.</p>
<p>This is important to creating <strong>search friendly websites</strong> because ensurng search engines are able to crawl and index your content is necessary to acquiring search traffic and market share. By not embracing these approaches, you are leaving yourself in a handicap for SEO efforts and leaves you at a competitive disadvantage. In fact, it should not even just be designed on a project per project basis, but should be built into code that takes advantage of web standards and progressive enhancement.</p>
<h3>The AJAX Dilemma for SEO</h3>
<p>Show and Hide type interactions that are used in content areas throughout a site, like tabs or accordions, can create a crippling effect on the amount of content crawled by search engines, if they are not built correct. This content is typically built with poorly written JavaScript that does not take advantage of Web Standard code. The hidden content areas, when clicked on, will provide a string that follows the URL like, #somehiddencontent. Traditionally search engines ignore everything after the &#8220;#&#8221; (hash) tag.</p>
<p>Here are some examples of these interactions that are poorly written and don&#8217;t provide a graceful fail when JavaScript is turned off.</p>
<p>Here is an example of tabs used on <a href="http://iFoods.tv" target="_blank">iFoods.tv</a> with JavaScript on:</p>
<div id="attachment_106" class="wp-caption alignnone" style="width: 509px"><img class="size-full wp-image-106" title="ifoodstabs" src="http://visiblefactors.com/wp-content/uploads/2008/08/ifoodsjson1.jpg" alt="Tabs using AJAX on ifoodstv" width="499" height="351" /></a>
<p class="wp-caption-text">Tabs using AJAX on ifoodstv</p>
</div>
<p>Here is that same interaction, with JavaScript turned off:</p>
<p><img class="size-full wp-image-107" title="ifoodsjsoff" src="http://visiblefactors.com/wp-content/uploads/2008/08/ifoodsjsoff.jpg" alt="Tabs interaction with JavaScript turned off" width="500" height="54" /></p>
<p>Notice something different? Of course you do, it is VERY blatently obvious that the entire content within the tabs is completely missing. This is a large opportunity that is missed by ifoodstv.com at getting content not only indexed, but great internal links to deep content.</p>
<p>Now, taking a look at the way that <a href="http://imedix.com/" target="_blank">iMedix</a> does tabs is a little different, here it is with JavaScript on:</p>
<p><img class="size-full wp-image-108" title="imedixjson" src="http://visiblefactors.com/wp-content/uploads/2008/08/imedixjson.jpg" alt="iMedix Tabs with Javascript on" width="500" height="103" /></p>
<p>Here it is with JavaScript Off, on a different tab:</p>
<p><img class="size-full wp-image-109" title="imedixjsoff" src="http://visiblefactors.com/wp-content/uploads/2008/08/imedixjsoff.jpg" alt="iMedix tabs with JavaScript turned off" width="500" height="185" /></p>
<p>Do you notice a difference here at all? No?! Well, thats right, because there isn&#8217;t one.</p>
<p>Also, to add to that, iMedix is rewriting URLs so that there are no hash tags in the URLs:</p>
<p><img class="alignnone size-full wp-image-110" title="urlrewrite" src="http://visiblefactors.com/wp-content/uploads/2008/08/urlrewrite.jpg" alt="" width="403" height="22" /></a></p>
<p>This is a fantastic job of ensuring that there is not only crawlable content, but crawlable URLs. This is very important, search engines tend to ignore things after hash tags (#) in URLs. This is especially impotant with AJAX since that is typically how urls are created. <a href="http://adactio.com" target="_blank">Jeremy Keith</a> (JavaScript expert extraordinaire) has described some ways to get around the AJAX issues, including has tags, and has described it as <strong>Hijax</strong>.</p>
<h3>The Solution</h3>
<p>The solution to creating <strong>AJAX that is SEO friendly</strong> is to ensure that you are building your site using Progressive Enhancement and Unobtrusive JavaScript. Along with that, url issues that could lead to canonicalization and duplicate content issues can be avoided using methods like Hijax. With the extremely competitive markets out there on the web, this is VERY important. It is possible to create rich user experiences with Ajax that are great for SEO.</p>
<p>As an example of how to do this, you can build standard interactions on your site that are accessible and search friendly. (This is how we built any standard interaction at <a rel="nofollow" href="http://paypal.com" target="_blank">PayPal</a>). Any standard show/hide type interaction can be built using standardized JavaScript APIs. Doing this will create Non-JavaScript versions of interactions that are accessible and search friendly, but along with that will drastically reduce the amount of code that you have to write and increase developer efficiency.</p>
<h3>Resources to help with AJAX and SEO</h3>
<p><a rel="nofollow" href="http://googlewebmastercentral.blogspot.com/2007/11/spiders-view-of-web-20.html" target="_blank">Google Webmaster Central: A spiders view of Web 2.0<br />
</a><a href="http://domscripting.com/blog/display/41" target="_blank">Dom Scripting: Hijax</a><br />
<a href="http://adactio.com/journal/959" target="_blank">Progressive Enhancement with AJAX</a></p>
<p>Follow me on Twitter for more info <a href="http://twitter.com/tonyadam" target="_blank">@tonyadam</a> or <a href="http://feeds.feedburner.com/tonyadam" target="_blank"><strong>subscribe to my feed</strong></a> to keep up to date!</p>
]]></content:encoded>
			<wfw:commentRss>http://visiblefactors.com/blog/89-ajax-and-non-javascript-experiences-for-seo-friendly-websites/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

