The mysterious case of the Invisible web page!
SEO is all about visibility
I visit websites for a lot of different reasons – potential new client for MidBoh, possible link exchange candidate for one of our clients or just surfing the net. In any event, when I see a new site I usually can’t help casting a quick, professional eye over it. Is there something positive I can learn or a pitfall I can avoid? If I look deep enough I often find something interesting. Some research I was doing for one of our clients led me to a website worth discussing on these pages.
At first glance there was nothing special – a Flash script header that incorporated the primary navigation. That is unfortunately too common but not significant. (You can read some of my thoughts about Flash on my Is Flash safe to use in the context of SEO? page.) Clicking one of the menu options updated the visible content but the URL didn’t update. My immediate thought was the site used Frames (masking the URL is a very common symptom of Frames). So I checked the page source but found no trace of Frames. So what’s going on?
“Flash … Ahaaa … He’ll save everyone of us!” :: Sorry! Not today, he won’t
It seems the Flash script is interacting with JavaScript to update the content. At face value this sounds like a good thing, although our complaint about Flash is that it hides content from the search engines. Hoping to find out what was happening, I viewed the page source of one of the internal pages. I did a double take – the HTML for the internal page was identical to the landing page – not just similar but identical. The text I could see in the browser did not match the page source. The Flash / JavaScript navigation was hiding the all important content for every page except the home page. (This “magic” of changing the content on the page without refreshing the page is sometimes called Ajax. I’ll talk about that another day.)
Then I needed to know what Google and the other search engines thought of the site. One of the special search strings we use to see what Google knows about a website is this – site:website-of-interest.com.au. When used at Google and Yahoo, it will list the pages they know about, the page titles and the default “snippet” (the text shown as part of its results). In this case, Google listed the home page and the Flash script, while Yahoo listed only the home page, but with no snippet. As far as Google and Yahoo are concerned the other “pages” don’t exist. MSN doesn’t know about the site at all, but that is probably another story again.
I think if it was my site, I would prefer the content for all “pages” to be output for the initial display and then use Flash (or JavaScript) to hide the content from all but the current page. The advantage of this approach is that all of the content for the site is available for Google or a human visitor who don’t allow Flash or JavaScript. The drawback is the large “home page” will take longer to load, in part defeating one of the reasons the site was designed in this way. Of course, it will make each of the secondary pages faster to load because all the content is already in the browser.
As it stands now, all pages (other than the home page) are effectively invisible to Google and those who visit without JavaScript. I don’t have a way to measure the number of visitors who allow Flash to execute, so I can’t comment on that aspect, but I know use of JavaScript is not universal. This month (March 2009) the experience for one of our larger customer sites is almost 1 visitor in 6 does not have JavaScript turned on. Your mileage will vary, but it doesn’t seem safe to assume JavaScript is always available.
I mentioned earlier Google knows about the Flash script. Despite that sounding like a good thing, this will NOT reduce the problems here. Let me try to explain. Google is always looking for links to other sites, pages, images and even Flash scripts. In this case, it found the Flash script and included it in its index. When you follow the link to the Flash script, it is loaded in isolation. It displays the header image and the navigation options, but nothing else. As the necessary HTML structure is missing, the content for the secondary pages cannot be loaded. Now the visitor has a browser window dominated by the Flash script showing a menu that does nothing. How long would you keep trying to work a menu that refuses to co-operate, before returning to Google to find some other site with an interface that actually works? If I wasn’t trying to work out what was going on I would have been gone after the third frustrating click. In reality this may be an academic question. The site is unlikely to be found in a search result position anyone will reach.
SEO Remedies
The usual quick fix for bad navigation is to add a sitemap to ensure the search engines can find every page. That won’t work here because they can’t see the other pages. The only HTML page on the site is the home page.
While there may be multiple options to correct this situation, I think the major choices are
- (As I outlined earlier) restructure the home page to incorporate the content for all of the internal pages and make them visible by default, then use a variation of the current JavaScript approach to make only the relevant current page content visible at anyone time.
- Remove the content for the internal “pages” from the JavaScript and use this content to create new pages. Once this is done, the final step is to provide a method (that the search engines can follow) to link these pages. It is possible that the existing Flash script can be modified to handle this. If this is the chosen method a sitemap will be required and it will have to be submitted to the search engines to ensure they know it exists. I would be more comfortable if this function was removed from the Flash script and standard HTML links used to replace it. (Hands up all those who guessed I was going to say that? You are either brown-nosing or you have read all my other Flash opinion pages.)
Here’s another thought. How will this site track visitors to its pages? I don’t know enough about Flash to be sure, but as I understand it Flash is a client side scripting language, so it won’t have the authority to write to a log file on the server. It may be able to write to the visitor’s local hard disk but that’s useless as far as the website is concerned.
I think the use of Flash in this way is very innovative. Someone needs a pat on the back for creativity. Unfortunately, I don’t think a pat on the back is warranted for the detrimental effect this ineffective solution may have on the website. I wonder how much the customer paid for the privilege of a “solution” I consider at best experimental and at worst a lemon and what it will cost in terms of missed opportunity over the next few years. The cost to create the site was probably at least as much as it will cost to undo the damage. The long term cost of this implementation is difficult to predict.
This situation asks more questions than I have answers at the moment. Call me foolish but I would still love to hear your questions. You can contact me by visiting the MidBoh Contact Us page.