There’s been a trend for many years now to serve up “mobile optimised” sites, usually by redirecting users to a different domain like “http://m.example.com”.
Please, for crying out loud, I beg of you – STOP this practice. Not only is it bad for your site, it’s bad for your users too.
It screws up your site’s search engine ranking
All SEO folks will tell you to ensure your site has one, and only one domain. That is: pick either “www.example.com” or “example.com” and stick with it, redirect all your traffic onto that one domain. The same goes for mobile sites – pushing users off to some other domain means links they share will go to your mobile site.
You’re probably going to screw it up in some subtle way anyhow
You’ll test like crazy, and hey – it works. For you. On that version of the mobile phone software, with that screen size, on that internet connection.
Change some of those variables and suddenly the page layout is screwed up because a Carrier decided to rewrite your site to be ‘mobile friendly’.
A new device comes out with a larger screen – say, something like a Tablet/iPad. To your site’s code that looks like a mobile device, but to the poor sucker using it – your site looks terrible, is missing features/functionality.
And if you don’t get redirection right, You’ll be completely stuffing up the users who try to access the ‘desktop’ link, and instead get sent to the front page of your mobile site, or at worst a 404 page.
Links from the mobile site are useless for the desktop
Someone on a phone or tablet emails a link like say http://en.m.wikipedia.org/wiki/Coffee - ah, crap, it’s the mobile version, and is missing a bunch of stuff. How do I get the proper page? I have no idea, there’s probably a link somewhere though.
Mobile probably isn’t what you meant
You probably actually mean ‘small screen sizes’ or ‘low bandwidth’.
Folks who are on modern smartphones or tablets actually have a pretty fast internet connection (either 3G or Wifi). They also have browsers as capable as your desktop, or nearly so anyway. All up, redirecting is a pretty good way to just waste people’s time and cause frustration.
Just serve them the same content
(Disclaimer: I’m not a UI designer or developer)
There’s techniques like CSS Media Queries which let you serve up the one page, which will re-arrange or completely remove elements based on screen size. The good thing is that this means new devices with oddly shaped screens will work automatically. See Scott Hanselman’s site for an example of this done right – make your window wider or narrower, and elements turn on/off.
I realise there’s exceptions to this – if you’re mainly aiming at users in markets where smartphone penetration is low and 3G is non-existent then having a low bandwidth, WAP site is a necessity.
For most sites, though, you don’t.
Edit 10AM Friday 27th July: Server-side browser detection isn’t a solution
In case I wasn’t clear – server-side detection of browser isn’t a solution (imo). WordPress “mobile” themes, for example, are ugly on tablets and other large screen “mobile” devices.
It should be left to the user-agent (browser) to determine how to lay out the page. Trying to detect this on the server will eventually fail – either because technology has moved on in ways you didn’t cater for, or you didn’t test it on all the devices in the world.
This leaves users with the need to either switch off the theme, or put up with a design that looks terrible for their device.
There’s a huge stable of sites that do things like what I’ve described here. A few examples I can think of off the top of my head: