Correct way to handle mobile browsers

At work, a lot of our sites have sweet mobile versions. The problem is how to educate people of their existence. Currently we just have little ads that show up on the site that promote the mobile site, which seems a subpar solution. So I was tasked with doing providing a way to redirect to the mobile sites. Luckily, as a lot of the time with Django, most of my work was done for me.

Minidetector is a Django reusable app that allows you to know if a request is being viewed on a mobile device. It provides a middleware and a view decorator that sets a request.mobile variable to True if the request is coming from a mobile device. It's method of figuring out if a device is mobile is simple; It first checks for a special Opera Mini header, then for WAP support, then finally checks the User Agent against a list of known mobile strings.

So at work I have implemented a simple way to promote the mobile sites through redirecting, allowing for a couple of different use cases. This has lead to a problem that a lot of internet sites face, and I haven't found a good solution to the problem: how do I redirect users to a mobile site?

Obviously, you should keep the request path, so that when you go to SITE/blog/2009, you get redirected to m.SITE/blog/2009. A lot of sites actually chop off the request path, bringing you to the mobile home page!

The use case

The use case I am thinking about is a user that is using twitter, and they click on a lot of links to a site, through a mobile browser. They should be gentley introduced to the existance of the mobile site, and have the ability to always have mobile links go to the mobile site. However, they should also have the ability to say 'never show me the mobile site' as well.

Three approaches

No Redirects

I see two basic approaches to the problem. The first is that we don't automatically redirect anyone to our mobile sites. We are able to detect if they are identifying as a mobile browser, so we can show them a message about our mobile site, and let them choose.

An option could be made to allow a user to say "Always redirect me" if they enjoy usage of the mobile site. This seems to allow the user to get expected behavior, but allow them to choose to use the mobile site on their mobile device if they want. However, you run into the problem of users ignoring the message about the mobile site, or just not caring enough to click it.

Redirect once (opt in)

Redirect once is the plan where you redirect the user once, and then set a cookie to never redirect them again. This allows the mobile user to get a glimpse of your mobile site the first time they visit, and can then choose to visit in the future.

You can also allow them to set a cookie to automatically redirect all of their mobile requests in the future. This allows the user to get a glimpse of the mobile site, and see if they want to use it. Then based on this experience, they can choose to visit it by default if they want.

Always redirect (opt out)

The third option is to always redirect mobile browsers to the mobile site, with the ability to go back to the main site. You would have a setting that the user could set to never be redirected. This is more of a 'all mobile users will use our mobile site, unless they choose not to'. I don't know if the mobile web is quite there yet (for example, we don't have a mobile version for every page), and it might lead to user confusion.

What do you think?

I think that redirecting the user on their first visit on a mobile browser is a good idea. This introduces them to the mobile site, and by setting a cookie on that redirect, you can be sure that they won't be redirected again. Then you can have an opt in cookie, that basically says redirect me every time. This makes it do what people expect most of the time, while still allowing the choice to always be redirected.

Have you implemented mobile redirecting before on a site? How have you solves this problem? Am I missing some obvious solution that handles all these cases gracefully?




Comments

1 Chris Hasenpflug says...

Been battling with the same decision, and have yet to come to a good decision. I lean towards Always redirect (opt out), but am not completely sold on it.

Posted at 2:45 a.m. on November 10, 2009

2 Justin Heideman says...

We just rolled out our mobile site last week, so this was something our team discussed a lot. Our choice was to go with the redirect opt-out method. We catch you on some specific pages that we know we have a mobile equivalent to and then redirect you if you do not have a cookie set. Once you get to the mobile site, we have a link that says Back to {{Previous Site}} which sets the cookie and takes you back.

For us, with our mobile site being a totally different structure than the full site, this was the easiest, and the most effective way to get the appropriate users on our full site. We try to put a link on every page on the mobile site to view the same page on the full site. We haven't yet put the inverse links on our full site, and I'm not sure we will.

The scenario I am most worried about is people who want our mobile site, leave it, setting the opt-out cookie, and then can't figure out how to get back. For that reason we've set our cookie to expire in a month. Not perfect, but it works.

Posted at 4:31 a.m. on November 10, 2009

3 Bruno Renié says...

I used another solution when I had to do this: instead of redirecting, I have a custom render_to_response shortcut that takes the request as a parameter. If the request is made from a mobile device, the shortcut tries to render a different template (like home_mobile.html instead of home.html). This way there is no need to redirect, and adding a mobile version of a page means just writing a new template.

And of course, the solutions presented here are still applicable. But it makes me wonder, is it a better practice to redirect the user instead of doing things behind the scenes?

Posted at 6:47 a.m. on November 10, 2009

4 Eric Florenzano says...

Bruno, I think that the key difference is that the post and most of the comments are concerned about the user experience, not a technical solution. Whether it's a redirect, a cookie, or something else entirely is mostly beside the point of the question, in my opinion.

As to the question itself, I tend to think that automatically redirecting to the mobile site is the way to go, as long as there is a clear way to go back to the regular site (and a clear way to go back to the mobile site). Any time that the user context-switches (goes mobile->regular or regular->mobile), some state should be saved to determine where the user should go the next time they visit.

Posted at 8:57 a.m. on November 10, 2009

5 Corey Oordt says...

Eric, I believe the Always redirect (opt-out) method is the best. Many sites just have Always Redirect (no matter what) which really sucks if the mobile site doesn't have the full functionality of the main site.

For most users, however, if consuming the content (e.g. blog, news story, etc) is the primary concern, then showing them the version that makes the experience of reading better is a big win for the user. Advanced users can always opt-out.

The opt out really is necessary if the mobile site has some real limitations.

Posted at 9:44 a.m. on November 10, 2009

6 Rob says...

<i>Redirect once is the plan where you redirect the user once, and then set a cookie to never redirect them again.</i>

Please don't do this. You shouldn't completely change the way your homepage renders without the user taking some kind of action.

One alternative you don't mention: an interstitial. "I see you are using a mobile browser. Would you like to use the mobile site? or proceed to the main one?"

Posted at 10:54 a.m. on November 10, 2009

7 Joeri says...

As a user, I want my default experience on a mobile browser to be a mobile experience. But I also want to be able to easily tell a site that, no, I'm not happy with the mobile experience, I'll use the full experience (especially if a site misdetects me for some reason).

Posted at 12:23 p.m. on November 10, 2009

8 Masklinn says...

Neither redirection is good for a very simple reason: mobile gateways don't always handle cookies correctly (or at all) even if they do tell the server they have no issue with cookies. They'll just swallow them.

I've experienced that when I built mobile websites. It wasn't very good.

In my opinion, never ever automatically redirect:

  1. The cookie will not set, so the user's choice will not register (whether he tried to opt in or out)
  2. Your mobile site sucks, my mobile browser doesn't. 9 times out of 10, I'd rather be on your (not very good) "desktop" site than on your (very bad) mobile site (note, "you" is generic here, it's not about "you Eric Holscher" of course, considering your experience I assume lj's mobile sites are at least acceptable)
  3. You already noted that most of the time, auto-redirections auto-redirect to the root of the mobile site. Terrific experience…

As far as I'm concerned, you're free to sniff that my browser is mobile and to give me a link to the mobile site at the top of the page. But don't force me to use the mobile site, and with either the opt-in or opt-out solutions, thing will break and you'll take away my possibility to choose.

Posted at 1:04 p.m. on November 10, 2009

9 Aidas Bendoraitis says...

I would agree with Rob that a visitor should see a intermediate screen asking what version he wants to see. This way nobody would need to download the full content of the page twice. And probably there should be a link in each page to switch to the alternative version in case the visitor changes his mind.

Posted at 1:54 p.m. on November 10, 2009

10 Jeremy Dunck says...

We do as Rob describes in #6 on PegasusNews.com-- if webkit (which is all our mobile supports), show interstitial w/ 2 links -- one takes to the mobile, the other sets a cookie to not show the interstitial again.

Our mobile is broadly different than our main site, so it doesn't really make sense for the mobile redirect to include the path.

Posted at 2:48 p.m. on November 10, 2009

11 Sam Hill says...

I would just follow the pattern used by google.com (the search page). Redirect, then have bi-directional links. Wikipedia also has a good experience. I do find it really annoying that the ny times does not redirect on incoming links bc their mobile site is quite good. And then I never know how to get to it.

Posted at 3:41 p.m. on November 10, 2009

12 John Boxall says...

Our simple rule:

Show a mobile viewer the mobile site (unless they said not to).

Posted at 4:31 p.m. on November 10, 2009

13 Warren says...

As a user, Joeri says... is the only one that presents the discussion/reply as that, a user. The answer may depend on the type of site it is, what your mobile browser audience might/should expect over your full-screen browsers. I think all options above could be correct, but to find the best one(s) would be to ask YOUR audience. In this case you mention a blog, and as such that may end up to be one common answer to the question, I would be inclined to be presented with the mobile version by default, with an easy to find escape back to the full site if I want to view more. A mobile browser may be on a slow 3G connection wanting a small download first and foremost and a page of content scoped for that quick review. If I am regular returning visitor then I want to just see the recent updates and changes.. The answer may be quick simple if your doing what your viewers actually want or expect to get.

Posted at 4:43 a.m. on November 11, 2009

14 Alistair says...

Since there seems to be so much conjecture over what method works best, why not run a series of tests and find out what your users like.

It would seem as though this is something you can get solid data on, essentially you'd be measuring the resistance to the forcefulness of the switch to the mobile site

Posted at 12:08 p.m. on November 11, 2009

15 Mo Jangda says...

Just echoing what Alistair and others are saying: figure out what works best for your users.

But as a standard (and what Google and Facebook seem to do), redirect to the mobile site but give users the option to to switch back and forth between the different views. And remember their chosen view for the next time they visit.

Posted at 7 p.m. on November 11, 2009

Comments support markdown

Comments are closed.

Comments have been close for this post.