rel=”canonical” for non-HTML files?

Update in June 2011: Google now supports
rel=”canonical” in the HTTP header
! It’s party time.


Q: How would Google implement rel=”canonical” for non-HTML files?


A: Likely through the link entity in the HTTP header. It would look something like this:


HTTP/1.1 200 OK
Date: Tue, 20 Apr 2010 07:28:14 GMT
Server: Apache/2.2
Content-Type: text/html; charset=UTF-8
Link: <>; rel="canonical"
Transfer-Encoding: chunked


Q: When will this feature be ready?


A: Oh no, sorry if I misled. We probably won’t support this any time soon.


Q: Rats!


A: That’s not a question.


Q: So why wouldn’t you guys support rel=”canonical” in the HTTP header?


A: Truth is, we’ve discussed it internally and we’re currently leaning toward the worry that it may cause more damage than benefit.

  • An HTTP header with rel=”canonical” could be too obscure for many webmasters to debug — it’s a lot more obvious to troubleshoot when it’s in the HTML source.
  • We favor verifying correct adoption/implemention before increasing support for new features. For example, we waited some time before rolling out cross-domain rel=”canonical” to be sure same-domain rel=”canonical” was largely properly implemented.
  • Less notably, it’s not an often requested feature.
  • Update on 04/20/2010: We still use URLs in your Sitemap as a hint for your preferred canonical whether it’s HTML or non-HTML content (thanks to John for mentioning this!). So when we have a cluster of duplicates, your Sitemap URL can be the display version and obtain the linking properties from the cluster. Unlike rel=”canonical”, it’s not quite as strong a signal and it doesn’t have the ability to actually cluster dupes.


Last thing: If you feel that the lack of HTTP header support for non-HTML files is a gaping hole in rel=”canonical” functionality, let us (me) know. Otherwise, it’ll probably remain low to miniscule priority for some time to come.

Pseudocode for giving compliments

Women are diverse. And, in this beautiful diversity of women, there are some (like me) who are (at times) slightly neurotic (let’s pretend it’s endearing?). I think this is one reason why, if you’re a boy, complimenting a woman can be difficult.


Women are people, and people can be caught up in their thoughts, past relationships, childhoods, etc. Navigating personalities and knowing the “right”, or even just the “all right,” thing to say can be like walking through a minefield. What worked in one situation could be a total turnoff the next time around.


In most aspects of life, randomness sucks. If you’re a man, and if a woman has taken your compliment the wrong way, I empathize. I hope that all compliments from nice guys are accepted as they were intended, but for whatever reason, sometimes compliments falter — either they fall flat or they do more harm than good.


For all my neuroses, I’d still like to think that I’m logical. Here’s my first pass at creating a complimenting algorithm to help guys make more sense of (at times, crazy) people like me.


Again, pease note that I, Maile Ohye, am strange/nutty/<your-adjective-here>. The tests and algorithm do not apply across the board.


Compliment test cases


  1. On the phone: “You’re perfect.”
    I could literally feel my brain pagefaulting when I heard this — my flaws are numerous. He seemed fairly sincere, but this had to be a joke. He later clarified that by “perfect”, he meant that he “respected me and held me in high regard.” So while my first reaction was “this guy is illogical” this compliment had a happy ending.

  3. At a bar: “You’re pretty.”
    FAIL (So sorry, kind of harsh, I know)
    It’s always nice to hear that you’re pretty, but it feels a bit strange, too. I tend to wonder how many drinks he’s had, and whether he has any interest in me as a person. Besides, “pretty” isn’t an adjective I would use to describe myself. It’s just so dainty.

  5. Accidentally turning/bumping into each other at a bar: “Wow, you’re pretty!”
    So spontaneous it’s sweet.

  7. At a bar: “You’re pretty. But you probably hear that all the time. I just really like your smile.”
    Lol, thanks! (I’ll take it.)

  9. If you’re in a relationship together: “You look pretty!”
    Aww. So nice of you to say.

  11. All of the compliments above, but said to me in my early twenties.
    You could’ve said “I love your pink hair” and I would’ve eaten it up.
    Update on 04/13/2010: To clarify, I never had pink hair.

    My algorithm for giving compliments in common situations


    if (she’s your girlfriend || she’s not super confident) {
      needs and/or likes reassurance = true;
      desires appreciation for how she hopes to see herself = true;
      noteToSelf(needs and/or likes reassurance, desires appreciation for how she hopes to see herself);
      // also good to randomize calling customizedCompliment()


    if (you’re pre-relationship) && (she’s a confident person || she’s no longer in her early 20’s) {
      needs reassurance = false;
      desires appreciation for how she hopes to see herself = true;
      noteToSelf(needs reassurance, desires appreciation for how she hopes to see herself);
      if (your compliment is truly spontaneous) || (your authority on the topic is indisputable) || (your sincerity is unmistakable) {
      else {
        // best to elaborate


    Please let me know if this doesn’t make sense.

Search engines, URLs, and a trailing slash “/”

I wanted to write a general post for the Webmaster Blog about how search engines handle URLs with/without trailing slashes, but turns out that the major engines differ quite a bit in their display.


Conducting quick research using the URL for Webmaster Central, which 301s the non-trailing-slash URL,, to the trailing slash URL,,



here’s what I found today:

  • Good news for PageRank and linking properties! Search engines appear to cluster 301’d trailing-slash URLs to/from no-trailing-slash URLs (evidenced by the same cached version for various URL formats)
  • Google generally adheres to the target of your 301, displaying the target URL (with our without the trailing slash) in SERPs. Some examples from SERPs that show the 301 target with/without the trailing slash:
  • Yahoo! and Bing may remove the trailing slash from results, even if it’s the target of your 301. For the query [google webmaster central], both Yahoo! and Bing show this URL without the trailing slash:
  • Bing can remove more than just the trailing slash of a URL to fit query terms/keywords — they can remove characters, too. For the query [google webmaster tools], Bing shows:


Details and screenshots


Google generally follows 301s and displays URLs with or without a trailing slash accordingly (i.e. we stay pretty true to the URL that was successfully crawled). For example, Google search results reflect, the target of the 301, as the canonical version.


But Yahoo! seems to remove the trailing slash from the results display (i.e. even though is the 301 target, the slash is removed):


Interestingly, clicking this result’s cached version shows the trailing-slash URL, So while the display may differ, it’s likely both URLs, slash and no-trailing-slash, are clustered as expected:

Bing removes the trailing slash, too.


But I think Bing also removes the ‘s’ in ‘webmasters’ when it doesn’t match the query term. Here they display I found this feature most interesting.

In Bing, both the URLs
show the source URL in the cached version as
Evidence again that while the display formats may differ, the duplicate content URLs are likely clustered.

Bing’s swapping/adjusting of display URLs to match queries is a pretty neat idea with potentially large implications. And I’m sure Bing prevents keywords in URLs from becoming spammy in these 301 cases. For example, perhaps their results display only allows stemming of the canonical URL from plural to singular nouns (webmasters -> webmaster), not complete variations of keywords.


I don’t research search engine behavior outside of Google as much as I should, sorry about that. If you have more findings on trailing slashes and URLs, please share. Would be cool to learn more.


Update on May 18, 2010: A few weeks after this post, I published an official Webmaster Central article about how Google handles URLs and the trailing slash.

What’s the optimal server response time?

Fairly valid answers:


  1. Faster than your competitors
  2. Under 2 seconds


I’d go with #2 as I’m a believer in having metrics for myself independent of others’ performance. It just seems conducive to higher overall happiness.


My coworker, Sreeram Ramachandran, who developed Site Performance in Webmaster Tools forwarded me an article by Akamai about response times for eCommerce sites.


At Google, we definitely aim for sub-two.


You can check your site’s response time from locations throughout the world at For example, a user in Virginia with DSL needs less than a second to run the query [page speed] on


response time for google query
click image for this result on

Title and name attributes in HTML anchors

How does Google currently process title and name attributes in HTML anchors?


<a title=”sweet link!” name=”nice name!” href=”page.html”>foo</a>


title = not processed by Google (please keep in mind that it could be useful for other engines or applications)


name = not processed for ranking/content relevance, but can be utilized for understanding page structure (such as with JavaScript functions)


Thanks to Joachim Kupke (super nice guy) for checking the code to provide clarification.

Cheap vodka + Brita filter = top shelf ?

Genius! I laughed for about a minute straight when I heard the idea. It’s alchemy made lowbrow, pseudo logic at its finest. My friend, Kevin, provided this official review:


1. “So we thrice Brita’d the best vodka $8 could buy.”
2. “It definitely went down easier.”
3. “But man, the hangover feels like the cheap stuff.”


Kevin and Shane were visiting from SoCal. We hit up the San Francisco Chronicle Wine Competition at Fort Mason. It’s similar to a frat party for grown-ups.


san francisco wine competition

DateRank: PageRank for singles

DateRank: noun. An authoritative gauge of the guy/girl sitting in front of you that’s far more accurate than your hopes or pre-conceptions.

In the uncertain world of dating in the city, where you often know very little of your date’s background, people find it reassuring to meet friends of the person they’re dating. First of all, phew, your date has friends! Second, it’s truly affirming if your date’s friends are people you could imagine being friends with as well. It’s like hoping that they have quality inbound links.

Last week as Vanessa and I made our way home from the Beauty Bar, she coined this concept as DateRank™. While perhaps dehumanizing and unromantic, the parallels between DateRank and PageRank remain numerous.


DateRank PageRank
“He has really cool friends.” Quality inbound links
“His friends… let’s just say they’re questionable.” Links to bad neighborhood
“Eh, we’re friends, but I don’t know her that well.” rel=”nofollow”


Other dating signals Other ranking signals
Name-dropping Keyword stuffing
Repetitive/monotonous Duplicate content
Looking for a meal ticket Made for Adsense

Schooled by Engineering Barbie

“Know first who you are; then adorn yourself accordingly.”


That’s the start of Tim Gunn’s novel “A Guide to Quality, Taste & Style.” I recently learned of Gunn from his critique of the fashion sense of Mario and Luigi.


I read Gunn’s book because tomorrow I’m doing a keynote panel at SES London and I still have no clue what to wear. My brother-in-law recently emailed me that Computer Engineer Barbie will soon be released. “Perfect,” I thought, “she will be my new fashion mentor.”

Photo from Gizmodo.

So looking at this pic I realize that my idea is fairly improbable. Engineering Barbie is far more skilled than me:

  • Either that’s her screensaver or she can interpret binary
  • She owns a cool bluetooth headset
  • That’s a lot of color and sparkle for the office


Engineering Maile:

  • Prefers reading high-level languages
  • Still wears a retainer to bed
  • Dresses to blend in

The panel is tomorrow. I can’t wait. 🙂