Tom Lauck’s Deseloper.org

RIA Myth Busting: Back Button, History, and SEO

author:

I have touched on the topic of SEO in the past, however, that article the focused on a broad range of ideas to improve organic search.  I wanted to focus in on realities surrounding RIAs and commonly requested features, specifically to the combination of back button support, bookmarking, and search engine optimization.  All of these features would be wonderful in a single page interface, and with current technology and methodology, is it possible to have our cake and eat it too?

It is important to first have an understanding of the difference in objectives between a web application and a web site.  (Technically speaking, most web sites are web applications, but we are using the term in a looser sense).  Typical examples of an application in this scope would be GMail, Google Reader, and the user section of Mint.com – sites with almost no need of searchable content.  Examples from the opposite end of the spectrum would be Bloomberg, A List Apart, Wired, and someone’s blog.  Therefore, we have two camps, one where the sole focus is on interaction with data and no search strategy is needed and the other dictates a solid search strategy.

A method that has been gaining steam in the RIA world is using a hash sign (#), or anchor, in the URL.  Many talented people have spent precious time creating solutions to history and back button support for AJAX and Flash applications.  This is fantastic for a web application, because it provides capability for standard user interactions supported in browsers that are typically unsupported in rich internet applications.

So now that there is history support, does that mean SEO has been fully considered?  An article I found on w3.org sheds some light on the subject using a CNN video player as a case study:

CNN uses links like the above for all the topical video segments that are published on its site. The URL in this case has the following components:

Component Value
Protocol http
Host www.cnn.com
Path video
Client Param #/video/tech/2008/02/19/vo.aus.sea.spider.ap

2.1.1 Things To Note

The browser is expected to do a GET of the URL leading up to the fragment, and the processing application, in this case, the JavaScript embedded in the HTML Response processes the portion of the URL following the #.
The fragment identifier has been intentionally identified as a client parameter.
Treating it as a regular fragment identifier in this usage would result in one incorrectly infering that the URL for the video resource being addressed is http://www.cnn.com/video.
This would result in all the video links on the CNN site getting the same URL.
Thus, the entire URL in this case is http://www.cnn.com/video/#/video/tech/2008/02/19/vo.aus.sea.spider.ap
A consumer of this URL who goes looking for an idwithin the Response that matches the #-suffix of this URL will fail.
The reported Content-Type for the resource is text/html. However the behavior of the #-suffix in this case is not defined by the HTML specification.
As used, the #-suffix is a first-class client parameter in that it gets consumed by a script that is served as part of the HTML document returned by the server upon receiving a GET request.
This embedded script examines the URL available to it as script variable content.location, strips off the # and uses the rest of the prefix as an argument to function that generates the actual URL.
Having constructed this content URL, the script then proceeds to instruct the browser to play the media at the newly constructed location.

Notice that “the browser is expected to do a GET of the URL leading up to the fragment…JavaScript embedded in the HTML Response processes the portion of the URL following the #.”  To paraphrase, Google does not look at client side interactions, the fragment is truncated from Google’s index.  From this several assumptions can be made:

  1. Any back link using http://example.com/#example is actually viewed as http://example.com
  2. Back links pointing to URL fragments will have no individual page rank.
  3. In content rich scenarios, the use of URL fragments in leu of separate pages effectively dilutes almost all search traction.

Reflecting on how Google treats URL fragments, it can be clearly seen that a single page interface is not an effective strategy in scenarios with rich content.  Another big myth around single page interfaces is in the use of Flash, SWFAddress and/or Flex’s history manager.  Google will disregard URL fragments, the very foundation of SWFAddress and Flex’s history manager.  To reiterate, Googlebot just disregarded the URLs you have just crafted with SWFAddress.  It should be stated that some individuals wholeheartedly believe that using URL fragments is a successful SEO strategy.  Yet, when Google is typically the number one returning visitor, do you really want to take a chance at questioning the very foundation Google uses to spider your site?

Take for instance a designer’s personal site with tabs for Home, Resume, Portfolio, and Contact.  Would the designer want to implement a single page interface?  The answer would likely be no.  The content would gain more traction if it is separated properly.  To rehash the example of Google Reader, a single page interface is a good choice, for Google Reader would not benefit from having a separate page for each feed a user is subscribed to.

The advances made in RIA with regard to history and back button support encapsulate the innovative spirit that the web has embraced.  However, web workers tend to jump on bandwagons and this filters down to individuals with the power to poorly implement a technology – remember Flash intro pages?  Much like a seasoned web worker becomes very business and client savvy after years in the field, we need to be Google savvy.  Threfore, next time a wirefrime for a single page interface lands your desk, does the content dictate a search strategy?  If so, do some research on the reality of the solutions and ultimateley be kind to Google and Google will be kind to you.

38 Responses

date: October 22nd, 2008

Wouldn’t this be trivial to get around with mod_rewrite (or the IIS equivalent)? That is, a simple rule that rewrites /your_app_home/sub_page to /your_app_home/index.html#sub_page. Voila! Each sub-page has it’s own URL.

spoken by: Darren

date: October 22nd, 2008

@darren Yes, you could use mod_rewrite so that /your_app_home/sub_page is in fact /your_app_home/index.html#sub_page. However then you loose bookmarking – one of the three necessities I mentioned at the outset. This is because if you click on a link in the app you will go to /your_app_home/index.html#sub_page and not /your_app_home/sub_page. If people copy this link out of the URL bar to reference your content, they are effectively linking to the wrong content, in this case index.html instead of sub_page.

spoken by: tom

date: October 23rd, 2008

AFAIK, the problem is not on the server, but on the client (browser). Using the “#” strategy in a RIA to support history navigation and bookmarking does work because the browser, loading a new URL when the only changing thing is the anchor, will *not* reload the page. This is required to have immediate, smooth transition between sections/functions, and to keep the current state of the application (the state, in a RIA, is kept in the client).

Any server-side URL rewriting stragegy will break this behaviour.. the application will receive the same URL, but the browser will clean the page and load the application again from scratch.

spoken by: cosma

date: October 23rd, 2008

@cosma Using the hash mark (#) in RIA for bookmarking is fine if you are just providing with your users with a way back in from links stored in the browser. But, if people take that bookmark and post it as a backlink, Google will truncate anything after the #, thus diminishing your content relevance to Google. The strategy mentioned by @darren, although not stated completely accurately, would allow Google to spider content underneath the flash. The <a> tags would have clean links (http://example.com/sub-page.html) but the onclick would use the hash and return false (http://example.com/index.html#sub-page).

spoken by: tom

date: October 23rd, 2008

If your site relies on maintaining a lot of state information – more than you would want to store in a SharedObject -well then yes, it would still have to internally use the ‘#’ notation. But I think it’s worth keeping in mind that these are the sort of sites – it sounds like it’s an *application* rather than a site – where SEO doesn’t make any sense anyway. You don’t link to individual pages within Gmail for example.

So for sites where SEO makes sense you could use the subdomain format – both internally and externally – that I described in my initial comment because these sites would generally be stateless (or maintain some minimal state info in a SharedObject which could be accessed on every page reload). Still, regardless of your needs for maintaining state information, providing a Google sitemap in the subdomain format (and using mod_rewrite) will at least allow Google to index all your content, if this is something that makes sense for your site.

If you have the unlikely combination of a stateful app that would benefit greatly from SEO, you could always put a “Link to this page” button in your app that generates a SEO friendly URL and hope that people linking to your content use that.

spoken by: Darren

date: October 23rd, 2008

If your site relies on maintaining a lot of state information – more than you would want to store in a SharedObject -well then yes, it would still have to internally use the ‘#’ notation. But I think it’s worth keeping in mind that these are the sort of sites – it sounds like it’s an *application* rather than a site – where SEO doesn’t make any sense anyway. You don’t link to individual pages within Gmail for example.

I totally agree. You have to keep in mind the objectives. I eluded to this in the second to last paragraph.

So for sites where SEO makes sense you could use the subdomain format – both internally and externally – that I described in my initial comment because these sites would generally be stateless (or maintain some minimal state info in a SharedObject which could be accessed on every page reload). Still, regardless of your needs for maintaining state information, providing a Google sitemap in the subdomain format (and using mod_rewrite) will at least allow Google to index all your content, if this is something that makes sense for your site.

I believe what you are implying here is that there would be a separate GET for page. This is fine and would work.

If you have the unlikely combination of a stateful app that would benefit greatly from SEO, you could always put a “Link to this page” button in your app that generates a SEO friendly URL and hope that people linking to your content use that.

I disagree that this is a solid solution. Honestly, who is going to want use a “Link to this page” button (this is not to say I have not done used that technique in the past). I think the problem lies in people jumping on bandwagons. Take for example this: Designers want to control page transitions and make them fancy on a client’s site where SEO would normally make sense. They see SWFAddress and implement it. They also promise that the site is search optimized. This is inaccurate. Another example: A designer specs page transitions for a site where SEO makes sense, a business lead requests search optimization, and the developer – trying to please all parties – finds a JavaScript history manager that touts “includes SEO.” Again, SEO will suffer due to misinformation and poor implementations of useful technology.

spoken by: tom

date: June 17th, 2010

Hi and thanks. I’m forever looking into well written articles and information on web site seo. You don’t know where you are likely to discover original strategy (well, new to me at least). Even though there will always be essential Search engine optimisation techniques, a tiny fine-tune here and there, and your web site will get higher rankings. If you are using WordPress having the correct plug ins and / or a good quality premium template can help your Seo. Additionally it is important to keep up to date with the modifications in search engine algorithms.All the best

spoken by: Aura Abreau

date: June 14th, 2011

Thanks thus no end moving this series:)

spoken by: swietosc

date: October 18th, 2011

What is the difference between a web application and a web site?
These days the difference is blur.

These days the world has changed a lot.

Regarding SEO Google is now supporting hashes, today you can make a SPI web site/app with bookmarking, back-forward buttons working and SEO friendly.

Take a look to
http://itsnat.sourceforge.net/php/spim/spi_manifesto_en.php

spoken by: jmarranz

date: April 13th, 2012

I would like to express my affection for your generosity giving support to all those that have the need for guidance on this particular field. Your special commitment to passing the message along was remarkably practical and has continuously allowed workers just like me to reach their desired goals. Your own interesting help means a whole lot to me and extremely more to my fellow workers. Warm regards; from all of us.

spoken by: Udnyt Cohen

date: September 4th, 2012

you are really a just right webmaster. The web site loading speed is incredible. It seems that you’re doing any unique trick. In addition, The contents are masterpiece. you have done a fantastic process on this matter!

spoken by: Lena Walcutt

date: November 29th, 2012

I am so happy to read this. This is the type of details that needs to be given and not the random misinformation that is at the other blogs. Appreciate your sharing this greatest doc.

spoken by: Comprar enlaces backlinks

date: June 16th, 2014

This is my first time visit at here and i am in fact impressed to
read all at one place.

Here is my web-site; murdered soul suspect download free

spoken by: murdered soul suspect download free

date: June 17th, 2014

My spouse and I absolutely love your blog and find the majority of your post’s to be exactly what I’m looking for.
can you offer guest writers to write content available for you?

I wouldn’t mind publishing a post or elaborating on most of the subjects you write
with regards to here. Again, awesome blog!

spoken by: Charter Boat Fishing Pompano Beach

date: June 18th, 2014

As you keep acting from this perspective your business will inevitably grow in the weeks to come.
It was a good performance, but she may be in trouble of
elimination. It is just a popular ‘secret’ which exactly what encouraged
several political figures in order to primary strive for electrical power had been Best 14 Hack Top 10
sports director Tokens compromise top 10 crack generator.

spoken by: Top Eleven Hack iOS

date: June 20th, 2014

I was able to find good advice from your blog articles.

Here is my website – Scotch fir

spoken by: Scotch fir

date: June 21st, 2014

I have learn some just right stuff here. Definitely price bookmarking for revisiting.
I wonder how so much effort you set to create such a
magnificent informative website.

spoken by: www.instructables.com

date: July 11th, 2014

You’ve made some really good points there. I looked on the web to learn more about the issue and found most individuals will go along with your views on this website.

spoken by: tabletki poronne

date: July 25th, 2014

Excellent beat ! I wish to apprentice whilst you amend your
web site, how can i subscribe for a weblog website? The account helped me a
acceptable deal. I had been tiny bit acquainted of this your broadcast offered
brilliant transparent idea

Visit my homepage: Fountainhead For Sale

spoken by: Fountainhead For Sale

date: July 30th, 2014

I really like your blog.. very nice colors & theme. Did you design this
website yourself or did you hire someone to do it for you? Plz answer back as I’m looking
to design my own blog and would like to know where u
got this from. cheers

Review my web site; Hamburg Webdesign

spoken by: Hamburg Webdesign

date: August 10th, 2014

I like the helpful info you provide in your articles.
I will bookmark your blog and check again here frequently.
I am quite sure I’ll learn a lot of new stuff right here!
Best of luck for the next!

my site: darwinians

spoken by: darwinians

date: August 14th, 2014

This is a great tip especially to those fresh to the blogosphere.
Simple but very accurate information… Thanks for sharing this one.
A must read post!

spoken by: http://www.storenvy.com/okwdenicelnuzit

date: August 19th, 2014

Your dog by giving him treats, toys or other dog training techniques
such non-slip comfortable shoes.

Look at my site – bing.com (Lupita)

spoken by: Lupita

date: August 24th, 2014

An online Entertainment portal offering complete mobile applications like free downloadable mobile software, free
ringtones, wallpapers, free videos and free mobile
phone has bring a lot of choice and traffic racer hack
enjoying music. This is easily made available through the
game afterwards; or Space Stage. The ability to place ads in context with traffic racer hack the increasing popularity of mobile game is
made easy with Jorte application. Rovio Mobile remained in assistance to the current
level. Another thing that you are going to develop the game, though Sophie sticks with it.

Check out my webpage – traffic racer hack android apk

spoken by: traffic racer hack android apk

date: September 1st, 2014

Recently, we can look out for more gaming
ideas For additional price moviestarplanet cheats cuts,
get familiar with it. Archie is a simple and compact phone.
The most successful mobile games are so many great tools to find sustainable business models,
and more to the later stage. So, have a huge collection of action and adventurous thrills.

My blog Moviestarplanet hack for android

spoken by: Moviestarplanet hack for android

date: September 12th, 2014

This game is Chronosaur a dinosaur has broken the
bounds of linear time and game of war fire age hack as well as its last version, not
including special editions? Ravenhill Asylum, a large screen of a
new twist on an old technology, but real money just to have forgotten the excitement of the character.

Also visit my blog … Game of war fire age hacks

spoken by: game of war fire age hacks

date: September 24th, 2014

Hi there! I know this is kinda off topic however
, I’d figured I’d ask. Would you be interested in exchanging links or maybe guest writing a blog post or vice-versa?
My website discusses a lot of the same topics as yours and I feel we could greatly benefit
from each other. If you might be interested feel free to send me
an e-mail. I look forward to hearing from
you! Great blog by the way!

spoken by: http://www.streetfire.net/profile/stellabracken.htm

date: October 7th, 2014

The way this works is when you pull on it, air flows through the entire
unit and the chip senses the flow, closing a circuit between the battery and nebulizer and caused the nebulizer (like a
light bulb) produce heat and vaporize the liquid nicotine.
Electronic cigarette’s seem to be the wave
of the future concerning new ways of delivering the satisfying dose of nicotine in a safe
and less harmful manner. As our consumer society continues to churn out endless
upgrades and improvements of electronic equipment we are constantly told that we
need to upgrade.

spoken by: hookah pens refillable

date: October 9th, 2014

Online marketing utilizes among the a number of company designs to market products or services.

spoken by: Denver SEO

date: October 13th, 2014

Excellent items from you, man. I have understand your stuff prior to and you’re just extremely excellent.

I really like what you have got right here, really like what you’re saying and the way during which you assert it.
You’re making it entertaining and you continue to
take care of to stay it wise. I can not wait to read much more from
you. This is really a tremendous site.

spoken by: Eugenio

date: October 14th, 2014

Thanks for sharing your thoughts about website web design denver classes
inspiration smashing. Regards

spoken by: web design denver classes

date: January 8th, 2015

http://www.puinruimen.nu

spoken by: website

date: February 10th, 2015

You can certainly see your expertise within the work you write.
The world hopes for even more passionate writers such
aas you who are not afraaid to say how they believe. Always
go aftr your heart.

spoken by: kids birthday party places

date: May 16th, 2015

Hi there, just became alert to your blog through Google, and found that it is truly informative.
I’m going to watch out for brussels. I’ll appreciate if you continue
this in future. A lot of people will be benefited from
your writing. Cheers!

spoken by: game of war mod

date: July 24th, 2015

Hi my family member! I wish to say that this post is awesome,
great written and come with approximately all important infos.
I would like to see more posts like this .

spoken by: Lidia

date: March 24th, 2016

Excellent beat ! I wish to apprentice while you amend your web site, how could i subscribe for a blog web site? The account aided me a acceptable deal. I had been tiny bit acquainted of this your broadcast provided bright clear idea

spoken by: bastcilk doptb

date: October 13th, 2016

Thhis is my first time go to see at here aand i am genuinely pleassant to read everthing at alone place.

Feel freee to surf to my sitye … web page, Jaxon,

spoken by: Jaxon

date: May 9th, 2017

Soap

spoken by: usówanie dziecka

Leave a Reply

Oct 22 2008