TypePad and SquareSpace

WordPress.com has started to tick me off this weekend. I’ve lost control over the widgets that appear in the left and right menus. I’m investigating alternative commercial blog hosting solutions. The top two contenders are TypePad and SquareSpace.

Both offer paid hosting with domain mapping for less than $15 per month. I’ve signed up for the two week free trials on both sites. I’ve exported my WP blog, spent a couple of hours with StAX to clean up the output, and have successfully imported everything into both TP and SS. In both cases, I need to perform some manual tuning to get things the way I like them.

Quick summary of my thoughts so far:

  • TypePad annoyed me a little by asking for my credit card number up front, whereas SquaredSpace doesn’t require it until I’ve made a commitment to join.
  • For my needs, TypePad is much less expensive ($8 versus $14).
  • TypePad is straightforward to use, but a bit painful. I need to mass-delete all 200+ of the custom “categories” it imported from WP and it requires a two-click process for each. Additionally, things are not quite laid out cleanly on the management side. Tabs within tabs kind of thing.
  • SquareSpace takes a radically different — and better — approach to content management. It threw me for a loop at first, but it’s great once I got a handle on its metaphors. Switching to SS from Blogger, WP, or TP is a bit like switching to a Mac from a PC. It’s a new, scary, and aggrevating environment until you understand it, then it’s obvious and elegant.
  • TypePad has an iPhone application already available. SquareSpace is still working on theirs.

Rules for Flash Indexing

I’ve been thinking a lot about the Ryan Stewart’s Flex SEO contest (also known as the “Fleximagically Searchable” contest). As I posted earlier, I believe the best and correct method for “making Flash indexable” is not to index Flash at all, but rather to index the data. I spent a lot of time thinking about how I could get Google to index my content but link to my Flex application and I finally found a mechanism to do this! However, upon very close reading of Ryan’s rules I see that he specifically does not want this solution—he wants the content to be indexed by Googlebot “interacting” with the application.

That’s just silly.

For data-driven sites—which would be most Web sites with Flex front-ends—this is an completely artificial restriction. The only place where this would make any sense is for applications that do not dynamically load content, but rather dynamically generate content, such as for client-side mash-ups. Additionally, according to Google “if your Flash file loads an HTML file, an XML file, another SWF file, etc., Google will separately index that resource, but it will not yet be considered to be part of the content in your Flash file.” That implies that dynamically loaded content must be RPC-based (and binary?) to be considered part of your SWF (as Ryan Stewart desires) instead of a separate resource. Yuck!

I will continue with my planned solution because demonstrating the technique and learning how well it works for SEO will provide valuable information for the community.

Finally, I’d like to announce that I’ve purchased the domain fleximagicallysearchable.com for this contest1. There is nothing there now, but I would like to turn it into a blog or user forum for discussing Flex SEO strategies and make it a resource that lives beyond this contest, continuing to be useful in the future by providing tutorials and covering the emerging best practices for Flash and Flex SEO.

1 Not to be confused with fleximagically-searchable.com, which is owned by zedia.net.

A Thought About Flash Indexing

It seems to me that thinking about the problem as “indexing Flash” is to approach the matter backward. We want the data to be indexed—the presentation is irrelevant. Take this blog as an example. It’s database-driven and generates documents with my content—these words you’re reading now—wrapped inside of some HTML garnish to make the reading experience pleasant. If you’re reading this in a feed reader, then the content is wrapped in Atom or RSS garnish. Do I care what garnish surrounds my content? Not particularly.

The same principle holds true for other Web applications, whether the garnish is Ajax, Flash, Flex, Silverlight, or—like this blog—good old fashioned dynamically generated HTML. It is the data that must be indexed, the presentation around that data is (conceptually) irrelevant for SEO purposes. I think the matter may be confused because for so long the data and the presentation were bundled together in HTML (like this blog). Now with Ajax and Flash/Flex, we are back to separating the user interface from the data. However, when the data isn’t part of the user interface document sent by the server, it’s harder for search engines to access and index.

So what’s the solution? Expose the data for indexing and detect when incoming links should launch the Flash/Flex app instead of responding with the raw information. Naturally, the Flash/Flex app would be launched to deep-linked directly to the relevant content. If you’re not sure how to make the data indexable, I’ll tell you that I take my guidance from RESTful Web Services. The magic in this solution is detecting when an incoming link should launch a deep-linked Flex application and when it should render the raw data. For the moment, I’ll punt on detailing an implementation—consider it to be an exercise for the reader.

An exercise for the reader that can lead to rich rewards! Ryan Stewart has announced the Flex SEO Contest to encourage the community to establish best practices for Flash/Flex indexing. The rules are straightforward and the top prize is CS4 Master Collection. I like the challenge and may try my hand creating an entry that meets the contest criteria just for the experience of it.