WordPress not quite ready for mobile browsing

Instead of redacting this entire entry, I’ll let you know that mobile browsing for WordPress does work now. See my updated article on The Evolutionary Process of Mobile Browsing on WordPress for more details.

One of my design goals for revision 3 of SilverPen Publishing was to make the site more accessible. I’m not a web developer by trade and didn’t really know how to do this, but I knew that I didn’t want to exclude people from visiting my corner of the web. To me, this didn’t just mean making SilverPen more friendly to screen readers and other assistive technology devices, but also to make the site work well on mobile devices.

To this end, I found yet another great plugin by Alex King that queries the user agent of the browser trying to access the site. If it’s a mobile web browser, the plugin serves up a custom template that’s very lightweight and fast to load on mobile devices. It worked very well, but unfortunately it only worked in a vaccuum, and even then had some serious repercussions.

WP Super Cache

First off, it simply does not work with WP Super Cache, and in fact, no mobile browsing solution does. For those who haven’t heard of Super Cache, I’ll explain what it does and why it’s necessary very briefly. Every blog post and page that WordPress serves up is dynamically generated on the fly when you access the site. Putting all the pieces together to make a web page puts a lot of load on the server, and it makes the page load a lot slower for you. Caching allows the server to create static pages, rather than dynamic ones, of the same content and therefore serve it up faster. This reduces load on the server and makes the page load a whole lot fast for you.

Because of how WordPress works, this caching is pretty much vital to running a site on WordPress. My traffic’s not that high yet, but it has more than doubled in the last few months, and I expect it to continue increasing at a similar rate. The last thing I need is Bluehost freezing my site temporarily due to a sudden spike of traffic, so like all good WordPress bloggers, I use WP Super Cache.

To make a long story short, WP Super Cache creates a copy of a page the first time someone visits it. Each subsequent visitor is shown that copy, and this is what breaks WordPress Mobile Edition. Since you’re viewing a static copy of the page that has already been generated, you don’t see the mobile theme, rendering the mobile plugin useless.

If it’s a choice between having the page load more quickly for most everyone and reducing the load on my server vs. having the site more accessible on mobile devices, I’m going to have to go with the former. Especially as data plans move towards 3g and faster mobile browsing.

Search Engine de-Optimization

The second reason that mobile browsing fails for WordPress is because it kills SEO, which harms your ranking in search engines. By its very nature of essentially serving a different set of pages to mobile devices, plugins such at WordPress Mobile Edition fool search engine robots into thinking there’s a second website with duplicate content on it. Such duplicate content is ranked down by search engines, which means your pages are less likely to turn up in searches and you’ll get less traffic.

The mobile plugins and solutions for WordPress all admit that it’ll kill your SEO and recommend you “do something” about it, but don’t offer many solutions. I thought I had found an elegant work-around yesterday in the form of themed multiple domains in WordPress, which would allow me to have multiple domains pointing at a single instance of WordPress, wich each domain triggering its own theme. In this instance, you can easily redirect robots that hit those other domains to a separate robots.txt file, which would tell them “don’t index this site.” For example, if I had silverpenpub.net and m.silverpenpub.net (for mobile browsers), I could have the main site indexed and tell the robots not to index the mobile site.

But I don’t want to register a separate domain for mobile browsers, and I couldn’t get it to work with a subdomain for some reason. Maybe I was doing something wrong there and will figure it out eventually, but it’s not going to happen today.

Not worth my time

In the end, trying to twist WordPress into working on mobile devices doesn’t give a  lot of return for the investment, and I’m beginning to think it will be a non-issue before too long. Even I am beginning to dream nightly of acquiring an iPhone, and browsing with a 3g connection means that, even over a cellular data plan, you can load a site quickly. And newer phones have a lot larger screens, which means that my theme displays fine all on its own.

I know that WordPress now has a iPhone-friendly administrative interface, and I hope that they include more features in the future to help their platform run better on mobile devices. Accessibility is still important to me, but I can’t justify 5-10+ hours of work to make the site more accessible to 0.5% of readers by introducing “features” that degrade or break the site for the other 99.5%.

Favourite Firefox Extensions

I’ve been meaning to catalog these for a while now, so without further ado, here are my favourite Firefox extensions:

Adblock Plus blocks nearly all advertisements and popups automatically, but is also configurable to block images or just about any other content you want. My favourite use is when I’m browsing a particularly immature forum where people have offensive signatures (images they have uploaded to act as their signature); I can just right click on the image and use Adblock to block it. It keeps my screen uncluttered and clean.

All-in-One Gestures is highly programmable and allows you to use your mouse and a key combination (I click a button under my thumb on the mouse) to draw a “gesture” on the screen, which is then mapped to a command. Reloading tabs, opening new windows, or displaying cookies, they can all be programmed into Gestures.

BugMeNot isn’t officially hosted by Mozilla, but is pretty handy. If you get to a page where you have to login to see the content (a la some articles by the NY Times), just right click on the login box and select BugMeNot. It will query a database where people have entered accounts they have created in the past for just this purpose, then enter that account for login, thereby saving you the pain of creating a free account yourself.

Chromatabs is an aesthetically pleasing change to the tabs in Firefox, colouring the tabs either automatically or based upon your preferences. Tabs with a common domain (but not subdomain) are coloured alike, allowing for quick distinction between domains. Also, it’s pretty.

DownThemAll! is the best download management utility I have ever used. It often increases download speeds significantly (allowing you to download a file in as many as 10 pieces), can handle pausing and the like, and is both configurable and fairly silent. Compared to the standard Firefox download, it is wonderful, and is comparable to what Opera has built-in.

FireFTP is just a basic FTP client for Firefox, adding functionality that,while I would appreciate it be bundled with the browser, is excluded by Mozilla for some understandable reasons. If you don’t want to use a separate FTP program, install FireFTP.

Forecastfox Enhanced is a great weather plugin that displays the forecast in your status bar. My favourite feature is the built-in radar, which can be increased to 640×480 and animated.

Long Titles resolves a bug in Firefox that clips alternate text when you over an image with your mouse cursor. Normally in FF, to see this text, you would have to right click and go to properties (or switch to Opera or *shudder* IE), but Long Titles displays all of the alt text normally for you.

NoScript is a fantastic security addon that blocks all Javascript and other web scripting languages from being executed when you visit a page. The addon is also highly customizable, allowing whitelisting and the blocking of XSS. At work, I block pretty much everything to be safe, and this is always one of the first addons I install at a new computer.

Secure Login compliments the use of a master password (which you should always have if you use FF to store passwords) by entering the password in login fields a bit differently. Normally in Firefox, if you have your password saved for a page, upon double clicking on that field you’ll be prompted to login with your master password. After you give the master password, your login credentials are entered in the field and you can login. The downside is that FF does this by way of actually sending the characters to the login field and leaving it at that. Secure Login is similar to Opera’s wand feature and can log you into a site without entering the characters. This means that keyloggers can’t capture the passwords, and that nothing need be typed other than the master password and Alt+N. The upside is that, even if you have a keylogger installed on your machine, all a hacker could capture is your master password. Provided you use something different for all your accounts, they’d have to get physical access to your machine to find any useful information.

Tab Mix Plus is one I just discovered today, but it is the premier tab management addon, allowing you to lock, save, restore, and do a variety of other things to your tabs. It can also replace the standard Firefox crash recovery and is supposedly better at managing memory than FF’s normal tab/history/etc. saving and crash recovery.