8 Simple Tips For Making A Restaurant Web Site That Doesn’t Suck

Restaurant web sites are an interesting beast. It’s 2010. By now, nearly every restaurant realizes they need a web site. Unfortunately, a lot of owners still don’t quite understand what purpose their site serves or how to best serve their potential customers.

I’ll keep this simple:

  1. Your full address, hours, and phone number should appear on EVERY SINGLE PAGE, please. Don’t make me hunt for this information, since this is what at least 90% of your visitors are hunting for. Jam it into a sidebar or footer, but do NOT make me click a separate link or search like a truffle pig for something so very basic.
  2. Put a map on your contact page. Don’t just link to it, put the damn map there. This is extraordinarily simple, and full instructions are here, but suffice to say, enter your address on Google maps, click the Link option in the upper right corner, and copy and paste the embed code that appears. Don’t make me click through to see the map.
  3. Stop using Flash. Just stop. Resist the urge. It doesn’t make you edgy. It annoys the hell out of me. And any of your users who are trying to pull your site up on their phones. You can accomplish cool image changing effects in other ways, and if you’re playing music, that needs to stop too. Save the ambiance for your restaurant. Flash is also exquisitely bad for search engine optimization; people searching for a specific dish or words and phrases that would otherwise appear on your site may not find them if the search engines have trouble grabbing them. They’ve gotten better at searching Flash, but it’s still nearly impossible to drop someone accurately to the right spot in your Flash movie, so it just frustrates people.
  4. Make your full menu available. With prices. And incredibly prominently. The 10% of users who already know where you are and when you’re open are coming to check your menu. If you have several menus, list each of them. If they change often, that’s fine, but keep it seasonally representative at the very least.
  5. Make your menu available in a manner other than PDF. I know this one is a toughy and it’s unlikely to be a change anyone adopts in the near future. Restaurant owners are busy people who barely have the time to update the menu in PDF form, which is how they get it printed, to worry about converting it to HTML or making it otherwise available on the site in a way that looks half decent. But doing this the right way is better for search engines, mobile users, and people who know that opening a PDF is a sometimes-Sisyphean ordeal that causes you to curse the gods. Don’t put us through that. We want to plan our meals or see if you have something we like. Make it easier on us.
  6. Only show fantastic food photos. Pay a photographer to get it right if you must, but do NOT post cell phone pictures from your Blackberry that you took on the patio at 11pm. This reflects poorly on your presentation even if the dish looks fantastic in person, and there’s no need to give people a specific reason NOT to show up. Also, you need not over-emphasize photos. While fantastic photos can really help push someone the right direction, you don’t need to overwhelm them. This isn’t McDonalds. In any event, make sure they’re great quality photos: well-lit, not overly compressed, and of something appetizing and plated well.
  7. Make sure you list things that set you apart. If you offer dietary considerations for diabetic, gluten-free, kosher, vegetarians, or vegan dieters, mention that. It’ll help in search engine results, and it’s invaluable for people who are looking specifically for that information and are unsure if you have anything that works for them. Consider whipping up an online menu that showcases some of those dishes; people in those communities will be extremely appreciative.
  8. Give us a little personality. Clearly state your purpose, your passion, and what you do to deliver and set yourself apart. A simple explanation with a few well-written bits about how much you love making great food for people can get your visitors energized and ready to make a reservation.

These are pretty universal, simple to apply tips that can enhance the experience for visitors who need a very specific piece of information typically very quickly: don’t frustrate us by burying it, forgetting to supply it entirely, or by designing the site so horribly that it’s nearly closing time when we finally track down your hours.

Posted in: Design, How To

Just another day in a Skype room with programmers…

Bob E: lorenzo, there were also some validation lang keys missing for image upload validation stuff, so if you can add those too that would be good
Lorenzo P: not possible
Lorenzo P: can’t be done
Lorenzo P: not enough mana.
David B: tough break, bob
Bob E: not really, now that i know he is out of mana i’m going to attack
Lorenzo P: I’m obviously a barbarian you FOOL!
Lorenzo P: should I auto login users on activation while I’m at it?
Bob E: sure
We use Skype for inter-office communication a lot. We’ve found it a nice tool for building chat rooms for specific projects, to keep things separated and clean; we can invite clients to discuss things throughout the day, and file sharing is simplified. I’ll save my critiques for Skype’s complete inane shortcomings across basically every platform for another post, but suffice to say, occasionally we have exchanges like the one above.
Please remember to ensure an adequate mana supply for your developers at all times.

Posted in: Cool Stuff

Newsletter Frequency: Let Users Decide

I recently bought a new house and found myself subscribed to West Elm, Crate and Barrel, and CB2′s email newsletters as a result. They offer some really good deals, showcase new and fun things for around the house, and they’re nice and pretty to look at. But these guys brutally violate the tenet of “not more than once a week, and even twice a month is pushing it” in the newsletter department, as their default behavior.

I get emailed sometimes as much as three times per week by Crate and Barrel. This is simply too much. The problem is, it’s all or nothing. While I may want to see when they announce new seasonal items or great upcoming sales, I can either turn it all off, or get barraged with an absurd amount of mail that drives me nuts.

The solution to this is to allow users to choose their newsletter frequency. Harry & David, another frequent emailer, wised up to this and offers four options:

  • “Keep my emails coming, I want to make sure I receive your best offers”
  • “Send me an email once a week”
  • “Send me an email once every two weeks, plus holiday reminders”
  • “Send me an email once each month, plus holiday reminders”

Brilliant. Since I’m not dying to be tempted by fresh and delicious pears four times a week, I chose the “once a month, plus holidays” option. I still see when new products are in season, and they warn me of upcoming sales, but I’m not driven to insanity, nor do I start to get frustrated with the brand because our email relationship is now on my terms.

Implementing variable frequency email newsletters, while sounding pretty simple, can be a bit complicated. An organization needs to determine if they want to tailor the less frequent emails differently so that users who are on the frequent list don’t receive the same email as users on the monthly list, or if they simply want to ratchet down the frequency. Typically, one would apply a simple hierarchy: the monthly email is the same for everyone, the bi-weekly is likewise, and people see the emails they’ve requested. If a weekly lines up with that month’s monthly, they’ll get that message, instead of a separate double.

I know that interactions and brand engagements like this rely on lots of “touches” to keep people thinking of you and to encourage repeat sales, but I really wonder about diminishing marginal returns. At the point that I’m receiving 10 emails from a company a month, how many more purchases can I reasonably be expected to make, versus sending me 5 emails a month? My personal feeling is that you seriously risk annoying your subscribers without making it back in increased purchases by polluting their inboxes and worse, conscribing yourself into “automatically delete” mode for the customer—since all they see is noise, they don’t even take the time to look inside anymore. When your emails are farther and fewer in between, and a good deal more substantial, your open rates increase and your conversion rates are likely to do the same… but even if they don’t, you won’t be risking damaging your brand, even on a subconscious level, with your best customers.

And your newsletter subscribers ARE some of your best customers—they’ve volunteered to allow you to spam them on a regular basis, for heaven’s sake. They trust that you’ll deliver value and deals and reasons to keep opening their messages. Don’t abuse that trust, and instead, let them set the boundaries so that you don’t unwittingly do more harm than good.

Posted in: Rants

Amazon S3 Versioning, Multi-Factor Authentication Now Available

Continuing their trend of releasing substantial features and additional services in their web services portfolio on a regular basis, Amazon announced this week the availability of versioning and multi-factor authentication across their Simple Storage Service (S3) property.

How S3 Versioning Works
Versioning is a critical feature many developers had requested as data stored on S3, while maintained in triplicate across the S3 file-system automatically, is still vulnerable to sweeping delete operations by developers, errant scripts, or other causes. Moreover, developers had to manually version changing files if they wanted to preserve the ability to roll-back to an earlier revision or undo a “delete”. In any event, a lot of custom code had to be created to replicate these behaviors, and most solutions weren’t particularly graceful.

Read More »

Posted in: Cool Stuff, Development

Extending PHP 5.3 Closures with Serialization and Reflection

PHP 5.3 has brought with it some powerful and much-needed features like late static bindings, namespaces, and closures (also referred to as anonymous functions and lambda functions). Anyone who is experienced with JavaScript or who has worked with programming languages like Scheme or Lisp should realize the value that anonymous functions can bring to PHP. The PHP Manual explains closures like this:

Anonymous functions, also known as closures, allow the creation of functions which have no specified name. They are most useful as the value of callback parameters, but they have many other uses. Closures can also be used as the values of variables; PHP automatically converts such expressions into instances of the Closure internal class.

PHP has very few predefined classes that are part of the core language, so naturally I was intrigued by the Closure class. The PHP Manual has this to say about the class:

The predefined final class Closure was introduced in PHP 5.3.0. It is used for internal implementation of anonymous functions. The class has a constructor forbidding the manual creation of the object (issues E_RECOVERABLE_ERROR) and the __invoke() method with the calling magic.

The invoke magic method is also a new feature in PHP 5.3. It is called when an object is used in the context of a function (e.g. $object($parameter);). Since Closure objects will be used like functions, this is a critical feature of the Closure object. The Closure class may be perfectly equipped to act like an anonymous function, but it does not provide any extra utility beyond that. A var_dump() of a closure will reveal the functions parameters, but there is no way to get any other information about the Closure (like the actual code of the function). Trying to serialize the Closure throws an Exception and json_encode() just returns an empty JSON string. To make matters worse, the Closure class is final, so there is no way to extend it.

That simply wasn’t going to cut it for me. I wanted to make my own Closure class that was at least able to do the following: Read More »

Posted in: Articles, Development

Facebook vs. Twitter Clickthroughs: More Bang For Your Buck

Facebook vs Twitter

While managing your social networking presence on Twitter and Facebook, it can be difficult to quantify the impact of each medium. While I’m a huge fan of Twitter, traffic results from earlier today on one of my sites confirmed for me what may sound like common sense: Facebook fans drive far more traffic per-user than Twitter followers for a given promotional message.

I’m currently running a contest in association with T-shirt company Threadless. (It’s called Threadknits, and it’s based on knitting and crocheting their t-shirt designs into crafts.) Today, Threadless posted a message on their Facebook page and  Twitter, both with essentially the same content: an invitation to check out Threadknits. They were both posted at nearly the same time.

The numbers are what might surprise you. Threadless has almost 1,500,000 followers on Twitter, and “only” 102,000 fans on Facebook. With the posts made within an hour of each other, my traffic on the site shot up, with a couple thousand visitors hitting by day’s end. Here’s the breakdown of traffic driven from each:

Medium: Fans: Visitors: % Audience Clickthroughs:
Facebook ~102,000 ~1,110 ~1.08%
Twitter ~1,490,000 ~682 ~0.04%

The difference is absolutely staggering. Whereas Facebook generated an approximate 1.08% clickthrough rate, Twitter’s was closer to, well, 0%. 232 visitors came from Twitter or related sites directly and 450 additional clicks landed on the home page without a referrer, which I’m chalking up to clicks from Twitter clients. (Though, to be fair, this could easily overstate Twitter’s influence.)

On a previous contest, Threadless would tweet and I’d see between 1,000-2,000 clicks on their roughly 1.4 million followers, so while it may be a bit low today, I think the point stands: Even at its best, Twitter for large audiences generates clickthrough rates dramatically lower than Facebook. For 2,000 clicks, the rate at 1.4M followers stood at 0.14%. A quick look at the bit.ly stats on a few links from Ashton Kutcher (the #1 Twitter personality by followers) shows they typically net about 20,000-30,000 clickthroughs, on 4.3M followers, gaining a decent amount on the Threadless best-case scenario all the way up to 0.48% ~ 0.60%. (This accounts somewhat for the viral nature of Twitter as bit.ly clicks are counted for retweets as well.) Naturally, clickthrough rates will vary dramatically even amongst popular Twitter personalities for a variety of reasons. I’d like to focus more on the significant difference between the Facebook and Twitter rates I witnessed today.

There are likely several possible reasons for this:

  • The audience may be slightly different—people willing to consider themselves “fans” on Facebook may be more picky with their allegiance than those willing to follow an account on Twitter.
  • The phrasing and formatting of the message were slightly different—not exactly apples-to-apples as Facebook includes the logo and a text clip from the website, but I imagine this had a negligible effect.
  • My mileage may vary—this is an admittedly small sample size, but I think the evidence and logic around these results indicate they’re not anomalous.
  • Most importantly, Facebook lingers while Twitter sails by. Users are probably more likely to follow links during their Facebook time than from a passing Twitter notification unless it’s of particular interest to them.

That last point is particularly important. Facebook, having reconfigured their News Feed yet again, no longer sorts things there chronologically. They’ve merged the Highlights functionality back into the News Feed which they now use to keep certain posts “stickier” than others based on what they believe you might be interested in. (It manages to do a strikingly horrible job at this compared to how it used to perform, but that’s a conversation for a different post.)

With Twitter, the very nature of real-time can be summed up: blink and you miss it. While you can use a Twitter client to review tweets over the past day or two, it’s still less likely your tweet was as visible over Twitter as a post would be on Facebook’s News Feed. I’d like to see some more statistics on total audience reach. The clickthrough rate surely only tells part of the story—I’d be far more interested to learn what percentage of each audience even saw the post, and determine true clickthrough rates from that.

In the end, it’s important to consider the overall spirit of the findings here. Twitter is great for growing virally and interacting with customers, but your message on Facebook may have a far more lasting impression and generate greater returns, even if fans are more of a fight to procure. Engage on both, but recognize the differences between them and leverage each of their strengths. I’ll likely post about the best way to do that for each site in the near future.

(The above graphic represents the total clickthrough breakdown by medium assuming a linear progression of Threadless’ Facebook audience to match their Twitter audience, maintaining the same clickthrough rates from today’s traffic. It’s likely the Facebook clickthrough rate could in fact fall some as their audience grew, but it’s my belief that it would still beat Twitter, user for user.)

Posted in: Articles, Cool Stuff

Nexus One Subsidy Hack: Drop Your Data Plan, Get $100

nexus_oneGoogle officially released their Nexus One Android phone today under the guise of a $179 subsidized price tag ($529 unsubsidized and unlocked). As many T-Mobile customers discovered today, that price only applied if you weren’t already a loyal customer. Instead, TMO customers were shafted subsidized based on their contract status and the presence of an existing data plan.

The official Google Support page describes the following subsidy tiers:

  • Nexus One without service: $529
  • Nexus One with new, 2-year T-Mobile US service plan for new customers: $179
  • Nexus One with new, 2-year T-Mobile US service plan for qualifying existing T-Mobile customers who are adding data plans: $279
  • Nexus One with new, 2-year T-Mobile US service plan for qualifying existing T-Mobile customers who are upgrading their data plans: $379

I’ve been a T-Mobile customer for a little over seven years now, and off-contract for pretty much that entire time. I’m thus now open to what T-Mobile calls their full subsidy. Except with the Google phone, where Google manages the subsidy, not T-Mobile. Since I had a $10/month sad, EDGE-based data plan with TMO, Google informed me after polling the TMO servers that I was eligible for the $150 subsidy, for a Nexus One price of $379. The next subsidy tier up is $100 cheaper for a price of $279.

The only distinction lies in whether you are “upgrading your data plan” or “adding a data plan.” This seemed like a simple enough problem to fix: I called T-Mobile support and asked them to cancel my data plan. They said it would be no problem, since I’m not under contract. I worried briefly that it wouldn’t be visible to the Google-based powers that be until the next billing cycle, but the TMO rep informed me that the change is instant. Since I knew I was buying a Nexus either way, I pulled the trigger.

Wouldn’t you know it, not five minutes later when I went to make the purchase again Google’s web store fetched my data and lo and behold, my Nexus price was now just $279. Easy-peasy, that.

The ironic part is that I’m moderately sure I could re-activate the data plan now without incurring any real additional fees in the day-and-a-half I may have to wait for the overnight shipping to get here, but I don’t use the slow EDGE service enough to warrant wrecking my cool here.

After all the dust settled, I realized how asinine Google had decided to make the checkout process by managing sales and subsidies of the device themselves. They limit you to just one rate plan during your purchase, which is more than a little infuriating as I received different answers from TMO reps over whether upping my minutes would cause Google to come after me for the subsidy. (It appears that you CAN upgrade your account to another Even More plan according to a recently-added note on this Google Support page.) The pricing rates are buried under a Support knowledge base article and not at all transparent. Google says $179 and then pulls an enormous J/K on you as they fetch your account information, seemingly pulling a figure out of thin air as it suits them. The T-Mobile reps can’t do anything about it since the purchase isn’t on their side of the pond at all. And Google is nowhere to be found.

Strange to me that a company so intent on delivering a device with their brand and full-throated support would instantly fawn off users to HTC and T-Mobile so that they don’t need to support their customers in any meaningful way. This isn’t the first time Google has proved shockingly absent with matters of support, but it feels very different when you’re purchasing a product subject to additional cancellation fees.

Further, it seems completely short-sighted to limit the subsidy as they have. Restricting the best price to new T-Mobile customers alone is frustrating, but they make it nearly impossible for anyone with a family plan to switch at the subsidized price. Worse, the subsidy at its lower rates really just amortizes the cost of the phone out over those two years, as the Even More plans cost $10/month more—that’s $240 over two years right there. Let’s be clear: At $379, you’re better off financially buying the unlocked phone and using the Even More Plus plan, which costs $10 less, for a total savings of $90 over the two year term. Even better since you’re not under any contract at the $529 rate.

Creating barriers to entry for new customers is always a bad idea, made all the worse when those barriers seem arbitrary and class-based. Google needs to stop with the silly tiers and subsidize the damn phone like they’re usually subsidized through carriers. They should allow purchases under family plans and not take the data plan into account. And they should allow you to select from any of T-Mobile’s Even More tiers, which would save me a phone call with T-Mobile’s (admittedly friendly and typically knowledgeable) support.

[1/18/2010 Edit: It was reported last week that Google is nixing the $379 rate entirely, so existing T-Mobile subscribers of all (out-of-contract) stripes will now qualify for the $279 offer. Early adopters who got hit with the $379 rate will have a refund check sent to them. Good on Google, but it'd be nice if it were $179 for all.]

Posted in: Rants, Tech News

Twitter Advice for Companies: Engage Intelligently

sp_twitterAs more and more companies move to engage their customers over Twitter, I thought it might be useful to outline a few guidelines companies should use when tweeting.

Naturally your mileage will vary, but these are tips I’ve put together based on my experience with companies who are doing Twitter right, and some who haven’t quite got the hang yet:
Read More »

Posted in: How To

Let’s Be Clear: There IS A Page Fold

please_scrollOver the past day or two, the website thereisnopagefold.com has been making the rounds. In a rather succinct, but incredibly tall manner, it states the following:


The buzz on Twitter from “designer” types appears to be a knee-jerk “ZOMG YES SO TRUE!!!111one” while responses on the site’s reddit thread have been more measured. I especially appreciate the following comment, by one fletcher_t:

Well of course it depends on the context of what the site is providing… but there is indeed a fold and if you’re ignorant of that, may god have mercy on your soul.

Let’s be perfectly clear: There IS a “fold”. For the uninitiated, the “fold” refers to the literal crease in a newspaper. Editors recognized the importance of catching their reader’s interest “above the fold”, because the likelihood a reader will bother to look under the fold is lower as a whole. Readers who might not typically read the sports section, for instance, will notice a story above the fold if it’s of interest to them. If they’re just flipping past as they always do, they’re far less likely to look beneath the fold.

The assertion made by the “no fold” site is that, because technology has provided us with infinite page lengths, we should design our pages accordingly. We can space things out more, we can use larger print and increase readability, and we shouldn’t be so concerned with what lies above the fold because users will scroll anyway! We were on a roll there up until that third point, weren’t we?

The reality is that the science of user attention is a tricky one, and more of an art than anything. Heat maps and eye-tracking studies frequently show huge dividends by presenting the initial page-load in a clear, concise manner, with well delineated courses of action visible to the user and readily accessible. Users will absolutely scroll, if you’ve given them a compelling reason to believe anything of interest lies beneath the fold. Users are fickle types, though, who scan quickly, look for large visual cues, and make an off-the-cuff and perhaps misinformed decision to bounce away from your site in an incredibly short amount of time, if you don’t captivate them instantly. To capture their interest, you simply must pay attention to the content that resides above the fold.

With Google’s release of Browser Size the other day, Tech Crunch mentioned that Google saw a 10% increase in the number of installs of Google Earth, simply by moving the download button up 100 pixels. By placing the call to action and primary focus of the page above the fold, users were far more likely to follow through. Naturally, this will vary from site to site. Amazon.com has a rather long page, which they use to show multiple categories of products they think you’ll be interested in. Their primary feature and what they hope will have the most success is always at the top, though—a compelling enticement to scroll further and see what else they got right.

Understand, this is by no means an argument for cramming everything of any importance above the fold. Not even a little bit. (And I understand that the no-fold site is likely directed at those types—but does anyone actually try to force entire sites above the fold anymore?) Whitespace should be well utilized, large print is totally acceptable, and designers shouldn’t force pages to fit into any idea of a “standard” vertical viewport. CXPartners even argues that including less information above the fold can encourage users to scroll more, arguably by reducing the utility of the site to the point where they’re forced to scroll.

It’s not my claim the no-fold site is implying you should ignore the above-fold design or disregard its design entirely, but the cheeky site title and its assertion that there is NO page fold degrades the importance of how you construct your pages for those first 700 or so pixels. Encourage your users to scroll, not by reducing utility but by increasing interest. Facilitate this behavior by keeping large, blocking horizontal lines and blocks at bay (advice from CXPartners’ piece) and providing clear paths downward. Ensure that users see that additional content exists further down. But don’t forget that your site’s first impression is above the fold.

Posted in: Design, Rants

Google Browser Size: Drawn By Five-Year-Olds

Browser SizeGoogle announced a new Labs product called Browser Size. At first I thought this might be a useful tool to complement their recent spate of great developer-oriented releases. Instead, I was assaulted by a hideous overlay that requires a left-aligned design. (Though they’re ostensibly working on that.)

Browser Size allows you to enter any URL  and see an overlay of visible browser space broken up by user demographics. Specifically, you can see what percentage of the Google-using populous would be able to see what portion of your screen on an initial page load. Apparently, this is based on typical browser dimensions for users, and not screen resolutions outright. (Taking into account non-maximized browsers.)

I understand that Labs products are by their nature not fully baked, but this one lands on the other extreme: half-assed. Perhaps the overlay is a rough attempt at being cheeky, but to me, it’s ugly, and its jagged, hand-drawn lines reduce its utility, rather than amping up its “cute” factor. The percentages aren’t even consistently rendered—it’s like My First Photoshop session here.

This isn’t to say that the concept isn’t a good one. I just wish they let this one cook a bit more before releasing it.

Browser Size | Google Labs via TechCrunch

Posted in: Design