How to make Flex RIA contents accessible to search engines like Google? - apache-flex

How would you make the contents of Flex RIA applications accessible to Google, so that Google can index the content and shows links to the right items in your Flex RIA. Consider a online shop, created in Flex, where the offered items shall be indexed by Google. Then a link on Google should open the corresponding product in the RIA.

Currently the best technique for making an RIA indexable by search engines is called progressive enhancement (or graceful degradation, depending on which way you see it). Basically you create a simple HTML version of the application using the same data as the application loads. This version should be dynamically generated by some kind of backend server technology. This HTML version can be indexed by Google, but each page also contains a check that determines if the visitor is capable of viewing the rich version, and if so replaces the HTML content with the Flash, Flex or Silverlight application, preferably in such a way that the application starts in a state where it shows the same data as the current page. "Replaces" can mean that it just embeds the application on top of the HTML content, or that it redirects the user to a page that embeds it. The former solution is preferable, because the latter can be considered cloaking.
One way of keeping the HTML and RIA versions of a shop synchronized is to decide on a URL scheme and make sure that RIA uses some kind of deep linking technique. If a visitor arrives to a specific item via a search engine, say /items/345 the corresponding pseudo-URL in the RIA should be the same, so that you can embed the RIA on top of the page and set that URL as a parameter to make the RIA display that same page as soon as it has loaded.
This summer, Google and Yahoo! announced that they would begin using a custom version of Flash Player to index Flash based applications by exploring them "in the same way that a person would". Now, two months later there is still no evidence that this is actually happening. Ryan Stweart had to cancel his Flex SEO competition because it became evident that no one could win. The problem seems to be that event though the technique may very well work (although I'm sceptical), the custom Flash Player needs some kind of network interface to be able to load any referenced resources, like XML data, other SWFs, etc., and this is currently not implemented by Google. This means that for an application that loads all it's data dynamically, like say, all that I can think of, Googlebot will not actually see anything relevant. Yahoo! ignores SWF based content altogether.
Oh, and it just so happens that I talk about Flex and SEO on the latest episode of the Flex show =)

There is a massive thread available here:
http://tech.groups.yahoo.com/group/flexcoders/message/58926
But essentially, google already indexes .SWF files (you can test this out yourself by restricting search results to just .SWF files). It can search any text content within the SWF file.
However, if the text information in your site comes from a database / web server. Then it won't be able to access this information easily.
One example of getting this to work is using an XML file as your index page, then using an XSLT transform to render it using Flex. "Ted On Flex" has good information about this.
http://flex.org/consultants

Related

How do I integrate my website with AICC for LMS

I want my website to be published as content in an LMS, one of the experts suggested me to use either SCORM and AICC. They suggested that we should make a wrapper around our website and then publish it on the LMS. Now I tried to search and read about SCROM and AICC but was not able to get any idea or how the wrapper has to be built.If someone can guide me with a blog or make steps of how should we achieve this.
Essentially, you have a few e-Learning Content Libraries out around the internet in a free and paid capacity. The primary job is to locate the LMS Runtime API. Your implementation is possible, but it would take some careful packaging and some custom work to get it done.
Every e-learning developer has to commonly build a Shareable Content Object player. This can be done using a IFRAME that loads pages. This allows the main page the LMS launches to load once, and unload once. Another route modern content takes, is to use AJAX to load in snippets of HTML and have a similar paging feel without the overhead of the IFRAME.
The next hurdle is trying to mitigate the cross-domain policy...
As you mentioned you could go AICC mainly because its cross-domain enabled. AICC is a bit more limited in what you can record though. Keep in mind this standard predates XML. So we are in the text with delimiters category of configuration.
SCORM is going to have a cross-domain security (sandbox) error associated with the JavaScript on your website trying to talk to the LMS. There is away around this, by possibly including your base index.html page which can use your JavaScript, CSS, Images on your website. But, if your website changes pages, we are back to my above comment. We need to wrap this in a IFRAME.
In the IFRAME scenario, you'd have to put your e-learning standard library there. And your sub pages in the IFRAME could talk to the parent. This ensures your main page and all sub pages have a line of sight to parent of the frame and can make calls if its present.
All of this really depends on how you built your website. We run content off media servers similarly, and have these same hurdles, but the content is meant to be activities, games, and tests/quizzes. If you adjust your website to try and communicate this way you'll have to pad it for working with and without a LMS and any runtime data.
You can still launch a website as a asset though. Not graded as a option. Some commonly do this as part of a lesson where the student can read something, then take a test on it in a subsequent assignment.
Good Luck,
Mark

Simple search on dynamic web app content

I'm looking to implement search functionality in an ASP.NET MVC site.
The site is driven by a CMS. The users can add widgets to the page with meetings, documents, etc.
So the whole site is fully dynamic.
As I see it, there are 2 options:
Search all possible content directly, and then figure out what results are coupled to pages. Or the other way around, figure out what the content of a page is.
Load or construct all available pages, and make sure the content can be searched. So, basically crawling and indexing my own content.
Maybe other?
I'm not sure what the best implementation would be, all experiences and directions are welcome!
I'm not really looking for Solr or Lucene based solutions. This needs to be a simple implementation, just running a LIKE on the correct rows of the DB is suffictient.

Ways to share a "Top X" list between two Drupal websites?

I'm trying to come up with some easy methods to share data between two Drupal websites. Here's my situation: Two websites both want a Top X Music listing with images, audio and data. One website is already creating and updating this list, and since they both use the same list the other website wants to straight up "steal" the first list, content, style and all. They want to take advantage of the work done to create the list on the other website. Their websites are structurally similar, and we control both sites. Audio is made playable using SWF tools.
Domain isn't really an appropriate solution here as the two sites share nothing besides the Top X Music list. I am able to create a view on the original site to feed the data in any format I want.
Some solutions I've been considering are:
Feed the data from one site to the other, hard link back to the other
site for audio/images.
iFrame the data on the site that is "stealing"
the list. (easy but seems too crude!)
jQuery AJAX load the data on the "stealing" site.
Basically I'm looking for suggestions of how you might handle this if they were your Drupal websites. I am familiar with Feeds, but would need to write a parser specifically for this feed, which seems like overkill for something so simple. Thanks! :)
You don't mention what version of Drupal you're using on the two sites. Assuming it's Drupal 6, you may want to check out the Web Widgets module and/or the Embed widgets module.
If you're just after a list of content from SiteA you could add a display to a given view and get RSS output. The ViewsRSS module gives you more control over what is returned.
If you're looking for more of a widget approach then I'd start looking at the Web widgets or Embed widgets modules. They're ok for basic functionality, but if you're looking to want more functionality I'd consider either embedding the content in an iframe (quick and dirty) or reviewing the services module(s) - although this may be overkill for your needs.
HTH.

Flex SEO & Google

I wrote a trivia game in Flex (flash). The site is written entirely in Flex. Almost all of the text is pulled from a database. It also has a fair number of images. The image file paths are pulled from the db.
My site's not getting any hits. If I check on google site:mysite it the url appears only. I know that inbound links are important and I'll try to get some. At the moment, I don't have any inbound links. In google webmaster tools, if I look under the site's keywords, there are 0. My sites been up for about a month.
Any suggestions on how to improve this situation?
(I've seen a few people ask for help with Flash SEO and the comments tended to be of the "don't use Flash" variety-- which aren't too helpful if you've written something in Flex/Flash).
Thank you.
-Laxmidi
Check out this article: Read Here
SEO FLASH PROGRAMMING
My recommended Flash SEO method uses a
DIV with search-engine-accessible,
primary content, and an open source
Javascript function called swfobject()
to detect when browsers are capable of
viewing Flash. When an appropriate
version of Flash player is present,
the Javascript manipulates the page's
document object model (DOM) to replace
the primary content with the Flash
movie. Most search engine spiders
can't handle Flash, so they will elect
to view the primary content. The
primary content may contain links,
headings, styled text, images—anything
we can add to an ordinary HTML page.
With SEO copyediting and coding skills
applied to the primary content, Flash
becomes a non-issue.
Flash accessibility programming isn't
spamming, as long as the primary
content and the visible movie are
essentially the same. The World Wide
Web Consortium (W3C) Web Accessibility
Initiative (WAI) specifically states
that multimedia content should have an
alternative representation available.
Accessibility programming creates the
benefit of presenting visual
information without losing the
visitors and search engines who depend
upon textual content.
As of July 2007, I discussed this
method with Dan Crow of Google. He
warned that this programming method
could draw attention because of the
possibility for abuse. If you use this
method, make sure the alternative
content is a faithful representation
of the Flash content, and avoid
combining this with other coding
methods that could be abused. While
this SEO method is not abusive, it is
aggressive because there is a small
risk that the search engines could
mistakenly decide that the primary
content is a form of cloaking.
I would also create a sitemap and link to multiple keyword rich landing pages about your game with a link back to the game. The more content google has to bite into the better changes someone will find you.
You also need to market your site...just because you build it doesn't mean they will come. Use twitter, facebook and any other form of social media to get the word out. You may also try buying a few bucks worth of ad words to start the ball rolling.
The solution to only the url appearing in Google is probably as simple as adding a meta description tag.
http://www.google.com/support/webmasters/bin/answer.py?answer=79812
http://googlewebmastercentral.blogspot.com/2007/09/improve-snippets-with-meta-description.html
It would also probably be beneficial to provide a description or instructions for the trivia game in HTML alongside the Flex part of the website, if this is possible.

Is content of webpage developed in Flex searchable?

If I developed my webpage entirely using Flex, is it searchable by Google and other search engines?
Thank you very much.
Yes. Google can.
If your browser can show you the contents of your flash object, for Google there is no reason to fail.
Check this article on Flash indexing on Google.
The answer is... you're probably taking the wrong approach if you are presenting your Flex app to be indexed.
Allegedly, Google has a Flash Player which allows indexing of Flash content, but no-one has ever seen it in the wild or had it confirm it's actually real.
The best way to approach this is to have an HTML landing page which links to your Flex application. The HTML page gets indexed, and your Flex app doesn't care. If there are things in your App which must be indexed, are you sure Flash was the right approach for it in the first place?
I've seen a lot of web sites use Flex/Flash objects only were needed, like 1 or more rich UI controls on the page. The rest is still HTML. That way you get the best of both worlds, and keep the site fairly simple (important to me), plus the we page is still searchable.
However, to answer your question, yes Google has been working on Flash site indexing algorithms:
Google learns to crawl Flash
More info:
SWF searchability FAQ
Making Flash websites searchable

Resources