Ecommerce Developer

Audio Interview: Adobe’s Justin Everett-Church Discusses SEO and Flash Content

Adobe Flash-based rich Internet applications may represent the future of web content in general and ecommerce in particular, but many web developers are concerned that Flash content is not easily optimized for search engines.

In this audio interview, Justin Everett-Church, sr. product manager for designer/developer relations for Flash at Adobe, describes the current state of search engine optimization for Flash, discusses the Flash Player for search, and addresses concerns about Flash content.

In addition to his work at Adobe, Everett-Church has co-authored four books on game development in Flash. He is a frequent speaker at conferences on the topics of Flash for mobile devices and for Flash outside the browser.

Justin Everett-Church

Transcript

Armando Roggio: Hello. This is Armando Roggio, Site Director for Ecommerce Developer. For today's interview, I have the pleasure of speaking with Justin Everett-Church. Justin Everett-Church is the Senior Project Manager for Flash Player at Adobe Systems. Prior to joining Adobe in 2006, Justin was the Flash Platform Manager at Yahoo! Inc., working with properties around the company to explore their options for rich Internet application development. He's worked in Flash design and development for over 12 years. He's written four books on Flash game development. Justin, thank you very much for being with me today.

Justin Everett-Church: Thank you for having me.

Armando Roggio: You know, when I was preparing for this interview, I noticed on your blog that you have a background on linguistics. How does someone go from being a Ph.D. candidate in linguistics to being a Flash Player expert?

Justin Everett-Church: You know, it actually is related. A lot of the work I was doing in phonology at the time was reminding me a lot of the work that I was doing in animation Flash, just as a personal interest on the side, but the way sounds move actually look a lot like the way key frame animations move and seeing a lot of the parallels just got me looking at the differences of sound, animation, multimedia, and one thing led to another and I kind of made the switch, found Flash to be more fun.

Armando Roggio: You know, it makes sense. I also have to wonder if there's not larger paychecks associated with Flash than there are with linguistics.

Justin Everett-Church: It could be that, too, but that was a nice bit of it, but I actually really did kind of have all the fun of the paycheck later. Certainly, in the early days, not so much, but it was okay.

Armando Roggio: I understand. Again, I appreciate you being here. We're going to talk today about Flash and SEO and I know that within the last couple of years, Flash or search engine's ability to index Flash has changed, but before we talk about what has changed in the last couple of years, can you describe some of the challenges or obstacles that web developers have had with optimizing Flash for search engines in the past and in some ways why Flash has gotten a bad rap where SEO is concerned.

Justin Everett-Church: Okay. So, Flash content or SWFs have been actually accessible to search engines for a while. In previous kind of incarnations, it's been able to decompile SWF and give all the strings out there. Unfortunately, that's not really getting out what an end user sees, what an end user experiences. So, we've had to come up with better solutions that give a more full description of the text links that are going on inside the SWF, how the end user actually is interacting with representing the hierarchy of the SWF. Without that full solution that we've implemented in the last couple of years, really, Flash search ability was less than it should be, but that's obviously why we did the work.

Armando Roggio: That makes sense. I've heard that there was actually two problems, maybe this is right, maybe it isn't, one, that search engines did have trouble getting inside the SWF and putting things in the right order and then also that once they did find something within the SWF linking back to that content. Are those both real problems or no?

Justin Everett-Church: Those are both issues that kind of work with all interactive technologies whether or not it's Flash or JavaScript, Silverlight. The challenge is it's a runtime and unlike the normal search process, which is very linear, there's a beginning of the story, a middle of the story and an end of the story. With an application that's running in Flash Player, there is just a lot more going on. Any end user could actually go to the application and click hundreds, if not thousands, of different places within an application and end up in a lot of places. The way the search industry is structured right now has been very much towards a normal page metaphor. We're seeing that kind of breaking down as other types of richer application regardless of the technology have come around. We're seeing that through things like the Back and Next button changing what it means to be a Back or a Next. We're seeing that changing how advertising is served. It also has affected how the search technologies work. When you're looking for information online through a search engine, you're looking for information. You're really not caring that much about the medium. You just want to make sure wherever that information whether or not it's an HTML in a PDF in a SWF, it is actually accessible. So, that's where we are today. There is still some more work that we need to do around making sure that we can assist our search partners like Google in giving them a way to bring that end user back to the right place within a running application. We started some of that by allowing parameters to be sent in to Flash Player when it starts up. So, a common way of bookmarking or dealing with navigation in Flash today is by passing parameters into the URL and passing those back into Flash Player when the page refreshes. We certainly do support that. If the search engine's categorized that correctly, they can actually send users back to the right place, but it's something that we as an industry really need to work out collectively.

Armando Roggio: That technique, is that what's referred to as deep linking in Flash?

Justin Everett-Church: Yes. Deep linking is the process of just taking a long hyperlink in the URL of the page, taking some of that data out, passing it into Flash and having Flash show a deeper part of the application.

Armando Roggio: So, from an SEO standpoint though, if I'm the Flash developer, I have to take that step to set up my application to do that. It's not something that's just going to happen automatically for me. Is that right?

Justin Everett-Church: Actually, that's not right. If you are building your applications in Flex, you can -- a lot of our components are already pre-configured to work with navigation management. So, for example, in a Flex application, if you've got things like tabs, you can click between various tabs and you can then see a URL change and use the Back and Next button. That can certainly be enabled and disabled. I believe the default is enabled, but for people that are not using Flex, there's actually a lot of really good libraries out there like SWFAddress that have been built by the community to address the same thing for people that are not using frameworks and writing very well little scripts themselves.

Armando Roggio: Actually, I think if I'm not mistaken, I was on the Adobe site recently and saw a couple of posts about SWFAddress and how to implement that. That will be a resource for folks who are listening to this. Is that correct?

Justin Everett-Church: Yes, that would be a really good resource. Our developer center have a lot of different resources for people at different stages of developing application from getting started to actually more optimization refinement and things like using libraries to enhance your applications.

Armando Roggio: I have to tell you one of the reasons I asked about that question in particular was that there's been some blog posts, some from actually an individual that I respect very much, Rand Fishkin of SEOmoz, and he had some posts specifically saying that you couldn't necessarily find the right state or the right frame within a Flash app and he actually repeated that in a book that just came out a month or so ago, "The Art of SEO," but I want to make sure I'm clear, sort of by default, if I'm using Flex, they're built right into the framework, I'm going to have the ability to have unique URLs, specific addressing for sections of my application. Is that right?

Justin Everett-Church: So, you have the ability to control the navigation in that way. Now, keep in mind, when we talk about a lot of how the Flash Player for search works that Adobe has created half of that solution. Right now, the other half is created by Google and it's really a combination of the two technologies. So, right now, with the way things are implemented, you are not able to really back track to a specific point in the Flash application. There is work that we have to do as an industry to take some of the tools like we have like the ability to support things like SWFAddress, but we can make those work that they can actually make for a better search result, but right now there are some limitations.

Armando Roggio: You mentioned just there as we're speaking the Flash Player for search. Is that the same player that I have seen a video for from Duane Nickull that I think he was calling Ichabod.

Justin Everett-Church: Yes. So, Ichabod was a codename for that player. Actually, I think it's a pretty cute name. It's a headless Flash player so it got named Ichabod, but we actually call it Flash Player for search and it really is Flash Player like you run it on your actual normal computer. It's playing that content in the same way so that you can get exactly the strings and links that are being displayed to the end user because like that previous way that I was telling you about, if you put a lot of strings into a SWF and you never actually showed them to the end user, those would still be indexed. This is actually a harder system to spoof because you can actually, it's really what an end user would have seen, not just want can be programmatically discovered about the details of the SWF. It also means our entire runtime is applied so you get to do things like load content, load externalize strings and have those when they're shown to the end user, in this case a virtual user, then they can be indexed.

Armando Roggio: Okay. So, with the Flash Player for search, we know that Google search bot, other search bots, are getting inside of the SWF. They're seeing content, they're seeing words and phrases. I guess I'm also going to quote Rand Fishkin here a little bit again from his discussion on this, if you don't mind I'll read you a little bit and then let you respond to it. He says, "Google can index the input files in the SWF to see words and phrases, but in Flash, a lot of your text isn't nice clean <h1> or paragraph tags, it's jumbled up in half phrases for graphical elements and will often be outputted in the incorrect order." Is that true?

Justin Everett-Church: So, it really does depend on how the application is structured. This is an area where we expect refinement from the virtual user that Google is producing, but it is possible that some elements may be taken out of order, but by and large, it's really, like I said, it's what the end users use. The way it works is actually a system of APIs. So, when the Flash Player is running, it has a bit of a hook that the virtual user can say, "Show me all the text," and it will actually provide each of the text units it surround. Certainly, one of the points he's bringing up is very valid. If you are using graphics for your texts, just the same as if you were in HTML, that's not going to be indexable because there is currently no OCR capability in there. Certainly, with the capabilities of Flash Player, there are situations where people might use vector representations of text for size optimization reasons, and they really need to have ways to trade off screen amenable size impact and the ability to search text, but overall that text is really accessible. Keep in mind all that text in hyperlink data that's coming out, what it's going to be used for though is not for actually knowing things about that particular SWF, it's to actually inform the HTML page that's hosting it so those sentences and paragraphs can be then attributed to the overall index of the page. I think one of the biggest points of confusion I've heard with some customers is really a comparison between SWF search and PDF search where when you search for content into Google, you will actually come up with PDFs and I have a lot of people ask me, "Well, is SWF search on because, you know, I'm doing my searches and I'm not seeing SWFs." What they were getting though were the information that they needed, which was housed inside of a SWF. It's now affecting the page rank for the HTML that holds that SWF. We don't really expect end users to ever look at a SWF by itself. It's really designed to be seen in the context of an HTML page.

Armando Roggio: That makes good sense. I want to point out one thing you mentioned early on in that answer, truth is that you mentioned that just like in HTML images aren't necessarily going to be indexed or the bottom line I think that a lot of people miss here and you kind of alluded to is that when we're talking about Flash and SEO and it may be that as the developer I have to do a few things to make sure that my Flash application is easier for Google, easier for Bing to index, but I would have to do the same thing if I was working in HTML. If I don't follow the best practices in HTML, I'm still going to suck where SEO is concerned, isn't that right?

Justin Everett-Church: That is really the crux of it that there's nothing that you have to do in Flash to make it indexable. It works with all the SWFs that are out there and works with no matter what player version it was targeted for, but it's the same thing as HTML. I don't have to do anything to make it searchable by a search bot, but you know, if I want to make it rank better, there's certainly things I should do and those are things that are very well established in the HTML community. They had years of SEO optimizations being gathered over time and we're still in the early days of that for Flash. We're starting to see people conducting fairly exhaustive tests of changing small elements of SWF and seeing how that affects page ranking and as that information starts to accumulate, you start coming up with list of best practices. So, we had some very early ones, which were be careful about your use of break-apart text, which is as vector, which is text as images, also just to be careful of how you structure like -- an anecdotal thing that Google mentioned was the most common word they find in any single SWF is the word loading and that's because it tends to be the very first piece of text you'll ever see in a larger SWF. So, they have some recommendations, but maybe that is one you actually want to break apart because loading may not be relevant word. Obviously, by the time you end up indexing a full SWF, that's probably one word out of many isn't going to do a huge amount of damage though.

Armando Roggio: Sure. You know, one of the other things that folks with HTML do is they'll use title tags and the <h1> tags and alt text on images and metadata, etc. I know that Flash has been accepting metadata since Flash 5. What about those other things? What about title tags? What about indications of emphasis within text in SWF file?

Justin Everett-Church: Right. We do have a similar system of marking up text so you can change their overall size and appearance. We have less of a framework-oriented one like HTML has with that sort of a declaration of, say, an <h1>. The semantics are a little more low level for us. So, we do have the ability for the virtual user to know, say, the size of the text to the color of the text to the relative position. Our focus on doing our first round of the Flash Player for search though was to work with the content that exists today, so about probably 14 years of all those SWFs that are out there then we can start to look forward to how can we make things better so that new content that's being developed can actually work towards the best possible search experience.

Armando Roggio: Sure. I want to switch gears just a little bit and talk about external files. I know that a common practice for Flex or Flash development is to have external XML files, maybe even be another SWF file, image files, etc., and I was again looking at a book that's just recently published, "The Art of SEO," and in that book on page 271, the authors write, "Search engine spiders do not see dynamically loaded content," that is text loaded from external sources, such as XML. At the same time, I read a blog post that was dated June 18 of this year on the Google Webmaster Central blog that said, "We just added external resource loading to our Flash index capabilities." Can you set the records straight? Are XML files indexable or not?

Justin Everett-Church: Absolutely. They absolutely are. They will be loaded by the Flash Player for search and dealt with just as if they were content running on your own desktop. The reason why that confusion occurred was the Flash Player that we've given Google has been actually the same since the beginning, but the difference there has been a change that Google was able to make this summer about almost a year to the day after they launched their initial version. What was not true a-year-and-a-half ago was true as of this summer. So, there were certainly a lot of very valid articles written about that as limitation. We are very pleased that Google has done the additional work. Really, what that works out to be is a little bit of detail of how Flash Player works, a little bit of detail about how search works that overall when Flash Player requesting things from the web, it's actually not Flash Player requesting it; it's the browser that hosts Flash Player. The network stack is external Flash Player and that's actually the same case here. We're aligned to whoever is hosting us, in this case, Google, to make the network request for us. That's really important for search though because think of how many SWFs that are out there on the web. They are able to search and index these amazingly fast and the way they have to do that is actually whenever a request is made, they can go out and cache that data, so it's available very, very quickly and they may even just say like, "We'll wait until we get all the data," and then rerun all the searches to make sure that it's all there. You can't really work in the same sort of go out and wait for a piece of content every time you need it just because it is an automated process.

Armando Roggio: That makes sense, and I'm actually really glad to hear you say that they are indexing that because it seems to me that if you're going to try and follow, for example, an MVC model when you're building your application, you're going to want to have a certain amount of your content stored externally or maybe a certain amount of your content is actually coming from a database. You're going to want to get it at the time of need, that sort of things. I'm glad to hear that.

Justin Everett-Church: Absolutely. As we feel like how a lot of our applications or the applications from the Flash platform are built, you will see a lot of them are externalized either to XML files or databases, one for just cleanliness of the code, but also really for localization. As we see more multi-language applications, it seemed some like 15 to 20 languages range, you really don't want to take the hit of having to download every possible language and store all of that, especially when one individual, it may have to be tweaked or changed here and there. It really is the best practice to keep the text out like that and so the whole goal of the application to get texts and links. It was a very significant limitation that we're very pleased is no longer an issue.

Armando Roggio: I agree. I'm also very pleased because I'm a huge fan of your platform. When I was thinking about this though, thinking about making the external documents indexable, the other thing that crossed my mind is screen readers. It seems to me like there's a relationship between the search bots, more of an analogy maybe, between the search bots that Google is using or Bing is using or Yahoo! is using and the screen readers that some say blind web users are using. Is there an analogy and does what we talked about for SEO carry over to those devices?

Justin Everett-Church: True. So, there are a couple of things. The first thing I want to start with is how HTML SEO works today. So, if you have an image, you often have an alt tag that describes what's going on in the image. The purpose of that alt tag is really for things like screen readers to be able to have that metadata and provide an experience to a blind or visually impaired end user. That happened to be also a really good source of data for SEO. So, lo and behold, they got used to that as well. We've gotten a lot of questions about how equivalent accessibility functionality within the Flash Player is used for SEO. Currently, with the way Flash Player for search works, accessibility data is not supplied to the virtual user. Part of that is we don't really want to encourage spoofing by putting in, say, erroneous data or, say, more marketing text into a space that's really intended for accessibility purposes. It's something that we're looking in to evaluate, but it's not there right now. Certainly, the screen reader capabilities are still there. It is actually a bit of a different functionality. We supply an API that works with a number of screen reader technologies so they can access Flash Player, but surprisingly enough, they seem like very analogous ways because they both have automated ways of navigating through a SWF file and ways of reading back content, but they do actually the functioning in fairly different ways.

Armando Roggio: So, are there any other things that I've missed? Are there any myths, if you will, that you want to debunk when it comes to SEO and Flash?

Justin Everett-Church: Okay. Let me give that a little bit of thought. Some of the biggest ones are really about people thinking they need to actually do something to their content in order to enable it, if your content plays in the Flash Player on your desktop, it's going to run here as well and because of that, actually it really does support a large number of different types of content. I think, really, the only things that have actually found to be limitations and that's really more of an application design is really if you structure your application in a way that is not going to be friendly to our virtual user, but we found that to be actually be a very rare case. It's really around very experimental interfaces, not the common sort of things. As far as other myths, I can't really think of anything. I think it's actually working very, very well and haven't encountered that many since then. I think it's been mostly once people understand that really is what the end user sees, it makes a lot of sense to them. It is just Flash Player that works the same way as the Flash Player you know and love. Oh, actually one other one I did think of. This is actually server technology though. I think people think of like, "Oh, it is Flash Player; therefore, it must be on my desktop computer somewhere," or, "Is this a new type of Flash Player?" That really is just the same Flash Player you know living on Google server and it's acting as the virtual user. There's nothing that's happening at the end user level. It's completely separated from that.

Armando Roggio: Justin, you've given us a lot of insight into SEO as it relates to Flash Player. I really appreciate your time. I hope that maybe in the future you'll come when you got new things to report about the next Flash Player. Thanks for your time.

Justin Everett-Church: Absolutely, I will.

Armando Roggio: All right. We'll definitely look forward to that.

Resources

This Ecommerce Developer Interviews episode is filed under Flash, ActionScript & Silverlight and has the following keyword tags: .

5 Comments

 

Inside Ecommerce Developer