Flash & SEO, A Home Run for Barefoot, Part 1
Dr. B. | Monday, May 08, 2006
We created a site that targeted Flash 8 so we could take advantage of great new features like high quality font rendering and improved transition effects. The client also wanted the ability to update content about current news, projects, and donor recognition. So, we stored all of the content in a MySQL database using a custom J2EE based content manager deployed on Apache Tomcat.
One of the typical drawbacks developers face when creating an all-Flash site is the issue of Search Engine Optimization, or SEO. Most search engines just ignore .swf files altogether. While Google does index .swf files, the results are very poor because they don't link into a specific navigation point with an all-Flash site.
For example, a Flash site may have a FAQ page with the word "FAQ" on it. Within the Flash, the user clicks the FAQ button and is able to see the FAQ content. However, if a user finds the FAQ content in a search engine that indexed the .swf itself, the link from the search engine to the site will likely take the user to the home page, or directly to the .swf file outside of its HTML container. Either way, the user doesn't see the FAQ content from the search engine, even if that content can be found.
Most solutions to this problem involve creating a completely separate HTML site. The HTML is indexed by search engines, and the content can be found. However, this typically requires developers or clients to maintain completely separate content bases, and prevents users who find the content via search engines from seeing the content in its Flash-enabled glory.
For Pitch In For Baseball, we used a very innovative combination of technology strategies to support search engine links that when clicked, tell the Flash application to go to the page found by the searcher. I'll detail the high-level strategy here, and write upcoming articles to show the details of each phase.
The major components of the strategy are:
- Store the content in a database. This provides one place for everyone to update the content, while allowing developers to render that content in multiple ways.
- Read the content dynamically into a Flash HTML field.
- Code the Flash app so that it can read URLs in order to open sub-content areas. Here are a couple example links:
- Use SWFObject to embed the Flash app on the page.
- Dynamically change the links within the content so that they navigate correctly whether inside the Flash, or on Flash HTML.
More details to come!
by Doug Smith, Senior Developer, Barefoot