Saturday, April 24, 2010

April PenWag Update

It's been a while since the last post here, and quite a few things have changed on PenWag.com, so I'll just hit the highlights.

The most significant change is a change in who's in the driver's seat when it comes to site navigation. PenWag has for some time followed the examples where GWT runs the show. The new approach for PenWag is to let HTML control navigation, and use GWT where dynamic AJAX functionality is needed. There are a few important factors that lead to this change.

First, search engine visibility. To get maximum exposure via search engines, there has to be static content. Search engines such as Google just aren't going to see your snazzy stuff that's in a dynamically populated div. It's also very important that search engines' robots have links that they can follow to all the nooks and crannies of your site. If they can't navigate to a page via an href, that page's content will never be searchable by potential visitors.

Second, gadget integration. As you look around for gadgets to add to your site, they almost all, across the board, will be easier to integrate into a site that's using HTML for navigation instead of GWT buttons or other wizardry. One reason for this is that a lot of the gadgets depend on scripts that run when a page is loaded. If they're embedded in a dynamically-loaded div, the script, in general, will not be executed and the gadget won't work. This leads to the need for web-site funkiness such as the use of iframes to hold script-dependent gadgets.

Third, maintainability. It's just way, way easier/faster to make changes to layout and content and try different things when HTML is the driver, typically because it means a browser refresh instead of a module build then browser refresh. Module rebuilds are then only necessary when changing the dynamic parts.

Fourth, browser compatibility. This is largely an issue due to the iframe stuff mentioned above. Since browsers don't automatically size iframes like they do divs, you have to load your content then use a script to size it. This means you have to deal with browser compatibility directly. Yuck.

Fifth, analytics integration. If HTML is the driver, whatever you're using for analytics (such as Google analytics) will give a nice, clean page breakout automatically. If the site is GWT-driven from one or a few pages, you have to explicitly call out the navigation for the analytics, and that means more work.

Sixth, advertising. It's easier for the advertising engines to deliver content-relevant ads when there's static content.