Taking Flex SEO for a test drive
July 1st, 2008 . by polygeekUnless you’ve been hiding under a MSN search box you’ve heard the news that Adobe has worked with Google and Yahoo to make SWF files truly indexable by search engine spiders.
I’ve put together a quick Flex application this morning to take this new feature for a test drive. It’s just a TabNavigator displaying a few tabs of content about Greek gods. My goal isn’t to become the number one result for zeus. I just want to see the content get indexed and see what the search results look like.
If you would like to help out with this little experiment then try linking to the application so that it might get crawled sooner. Wouldn’t it be cool if this little experiment ended up being on Google’s first page for “greek gods zeus”? I’ll do a site-search every few days to see when it gets indexed and report back in another post when it does.
I pulled the content off of the Wikipedia.org site and dropped it into a database here at polyGeek.com. Then I used AMFPHP to grab the data and create as many tabs in the TabNavigator as there are results. And I added toolTips to the images if you mouse over them.
The nice thing about the TabNavigator is that the BrowserManager is automatically engaged. And I wrote 3 lines of code to enable the deepLinking in the app so you can land directly on a specific tab depending on the URL. And as always, mi coda, su coda.
In the code I’ve added the SQL, images, and my GoRemote.mxml to help you recreate this if you want. You’ll just need to get AMFPHP going yourself and add my AMFdata.php file to the ../services/amfphp/ folder. I might cover all the more in depth in a later post, someday.
Addendum: I just read the blog post at Google and it mentions that
Googlebot does not execute some types of JavaScript. So if your web page loads a Flash file via JavaScript, Google may not be aware of that Flash file…
I’m using the default Javascript/HTML code that FlexBuilder creates. So I’ll see if it gets indexed. And if you’re wondering why I use the default FB code it’s because I’m too lazy to take the additional step of using SWFobject, most of the time. :-)














You might want to think about using SWFAddress so you can get nice deep link URLs, instead of the normal nasty Flex links.
aquilo que o programador pode fazer para obter o melhor partido destas novas alterações, as experiências da comunidade podem ser uma boa ajuda, no entanto as antigas técnicas continuam válidas (deeplinking, sitemaps, …
I was considering a test like this. I was going to use Google’s sitemap feature to promote the indexing of the test SWF though. If you haven’t used it before check it out here:
http://www.google.com/webmasters/
There’s an XML format you can follow which specifies which links Google should index. This might also let you know when Google has indexed it since you can login to your account and check the status.
“In Greek and Roman mythology, Apollo is one of the most important and many-sided of the Olympian deities.”
“On the 2007-*’s desktop, Apollo is the most beautiful and exciting technology and as a Greek I am very proud that it had this name even for the alpha phase”. Thank you Macromedia, thank you Adobe!
@Brett, I haven’t used SWFAddress. I’ll check into it.
@Tim, I’ve heard of Google’s sitemap. I was even using a Wordpress plugin that created one for this site but it conflicted with one of the Wordpress updates. I should re-enable it.
@ Savvas, you’re such a geek, I mean Greek. :-)
Isn’t it a problem that all the gods will be indexed under the same URL? It seems to me that the new SEO feature really makes deep-linking impossible for SEO, because each deep link into the app will be indexed using all the reachable text (i.e. everything).
@Brian, In this case the ‘gods’ shouldn’t be indexed under the same URL. Try browsing the example again and you’ll notice that the URL changes every time the tab changes. That’s the Flex HistoryManager in action. So, hopefully, when this example gets indexed I’ll be able to do a Google search on this site for ‘athena’ and link directly to that specific tab.
Now, most Flex apps are not state aware and there are very few Flash apps that are state aware. In those cases all the content in that swf will be indexed as one url.
Hopefully more and more developers will start using the HistoryManager now that it really has an impact on SEO.
Yeah, I get the use of the HistoryManager, but that only changes the bookmark. Will Google really notice the change of the bookmark, and will Google care enough to actually index the pages based on the bookmarks? In the past, a URL with parameters defined a unique page (?article=gods) Now we are expecting that bookmarks define unique pages. (?article=gods#section=zeus) This does not work well for standard HTML pages, because the URL containing the bookmark is returning exactly the same text as the URL without the bookmark.
If it works that way for a HistoryManager-enabled Flex app, then it will be something new. That’s really my question. Can googlebot recognize a change to the bookmark, and will it treat that as a separate page? Adobe has said in http://www.adobe.com/devnet/flash/articles/flash_searchability.html that you can use a sitemap to define different entry points, but that’s not a complete answer.
@Brian, Google recognizes changes in the URL. How else would they be able to return searches on this, or any other, blog?
Anyway, we’ll see when things start getting indexed exactly how it will work.
Because this URL is unique before the #? Do a search on site:polygeek.com and I think you’ll see that every URL that gets returned has nothing after the #. Whereas in a history managed Flex app, all the deep linking info comes after #. If Google does not store anything after the #, how will it ever deep link into a Flex app?
Leave a Reply