With the “Web 2.0″ world that we live in, companies are inclined to create “snazzy” new AJAX experiences for users. I have been dubbing this the AJAX Dilemma lately because organizations/companies/website owners are creating sites that are not accessible and SEO friendly. They are risking crippling their businesses in the areas of search traffic by not planning SEO into the lifecycle of the product.  Ensuring there is a Non-Javascript experience for search engines and accessibility is not a new practice. Creating sites using “Progressive Enhancement” and using “Unobtrusive JavaScript” has been around for quite some time.By creating web standard code and using the methods above, you are not sacrificing SEO for User Experience.

This is important to creating search friendly websites because ensurng search engines are able to crawl and index your content is necessary to acquiring search traffic and market share. By not embracing these approaches, you are leaving yourself in a handicap for SEO efforts and leaves you at a competitive disadvantage. In fact, it should not even just be designed on a project per project basis, but should be built into code that takes advantage of web standards and progressive enhancement.

The AJAX Dilemma for SEO

Show and Hide type interactions that are used in content areas throughout a site, like tabs or accordions, can create a crippling effect on the amount of content crawled by search engines, if they are not built correct. This content is typically built with poorly written JavaScript that does not take advantage of Web Standard code. The hidden content areas, when clicked on, will provide a string that follows the URL like, #somehiddencontent. Traditionally search engines ignore everything after the “#” (hash) tag.

Here are some examples of these interactions that are poorly written and don’t provide a graceful fail when JavaScript is turned off.

Here is an example of tabs used on iFoods.tv with JavaScript on:

Tabs using AJAX on ifoodstv

Tabs using AJAX on ifoodstv

Here is that same interaction, with JavaScript turned off:

Tabs interaction with JavaScript turned off

Tabs interaction with JavaScript turned off

Notice something different? Of course you do, it is VERY blatently obvious that the entire content within the tabs is completely missing. This is a large opportunity that is missed by ifoodstv.com at getting content not only indexed, but great internal links to deep content.

Now, taking a look at the way that iMedix does tabs is a little different, here it is with JavaScript on:

iMedix Tabs with Javascript on

iMedix Tabs with Javascript on

Here it is with JavaScript Off, on a different tab:

iMedix tabs with JavaScript turned off

iMedix tabs with JavaScript turned off

Do you notice a difference here at all? No?! Well, thats right, because there isn’t one.

Also, to add to that, iMedix is rewriting URLs so that there are no hash tags in the URLs:

This is a fantastic job of ensuring that there is not only crawlable content, but crawlable URLs. This is very important, search engines tend to ignore things after hash tags (#) in URLs. This is especially impotant with AJAX since that is typically how urls are created. Jeremy Keith (JavaScript expert extraordinaire) has described some ways to get around the AJAX issues, including has tags, and has described it as Hijax.

The Solution

The solution to creating AJAX that is SEO friendly is to ensure that you are building your site using Progressive Enhancement and Unobtrusive JavaScript. Along with that, url issues that could lead to canonicalization and duplicate content issues can be avoided using methods like Hijax. With the extremely competitive markets out there on the web, this is VERY important. It is possible to create rich user experiences with Ajax that are great for SEO.

As an example of how to do this, you can build standard interactions on your site that are accessible and search friendly. (This is how we built any standard interaction at PayPal). Any standard show/hide type interaction can be built using standardized JavaScript APIs. Doing this will create Non-JavaScript versions of interactions that are accessible and search friendly, but along with that will drastically reduce the amount of code that you have to write and increase developer efficiency.

Resources to help with AJAX and SEO

Google Webmaster Central: A spiders view of Web 2.0
Dom Scripting: Hijax
Progressive Enhancement with AJAX

Follow me on Twitter for more info @tonyadam or subscribe to my feed to keep up to date!

Share on:
  • Sphinn
  • StumbleUpon
  • Reddit
  • del.icio.us
  • Digg
  • Facebook
  • Mixx
  • Ma.gnolia
  • NewsVine
  • TwitThis

The most random thing happened to me last night and I am not sure how it happened. I went to login to my Facebook account last night and next thing I know I get the following message:

“Your account has been disabled by an administrator. If you have any questions or concerns, you can visit our FAQ page here.”

screenshot of facebook disabling my account

The thing that really gets me is not one piece of communication from Facebook to the user, in this case, me other than at the login screen. There was not one email sent from Facebook possibly stating: “Your account was disabled for the following reason…”

Furthermore, typically when someone violates a terms of services or anything of that nature, there should be a communication sent out to the individual. When you strip someone of any type of product, service, account, etc. there needs to be a valid reason for it and also what they can do to re-initiate their account. Going WAY back into the past with AOL, they use to do this if your account was reported, etc. I remember a specific occurrence where i called someone a name as a joke, in a chat room and I was reported by someone else (yes, I am a geek that lives online practically and I did at some point hang out in chat rooms with friends, insert one of many jokes <here>). AOL still sent an email to us, saying the account was disabled for the following XX number of reasons, the specific comment made, and furthermore, provided steps to getting our account back.

Moving back to Facebook, you can not strip someone of their means of communication and not provide reasoning for doing so. Disabling a users account without any explanation is like stripping a family of telephone and snail mail communication in the 1970’s, you just don’t do that!

So, I went on my way and tried to do a little digging to see if I could find a way to contact customer support or something along those lines. As you can see in the screenshot above there is a fancy little link to the FAQ page, “here”. (Side mistake by Facebook…right…because “here” describes what this beautiful little page is? Why not just link “disabled account FAQ page” to be a little more semantic…sigh)

What do we have here, on this fancy little FAQ page which provides absolutely no contact information? Ooops, I leaked it a bit to early…yes…you heard me right…the FAQ page does not provide ANY contact information to the user attempting to get in touch to find out why their account was disabled. Facebook, seriously? Are. You. Kidding. Me?!

Here is the fully open disabled user FAQ page, with…(yes I’m going to say it again)…NO CONTACT INFORMATION:

Facebook's disabled user FAQ page

Let’s recap for a moment here on where Facebook had a FAIL of EPIC proportions:

  • First and foremost, disabled a users account without any absolute reason
  • Provided the user with no explanation, let alone a detailed explanation of the problem
  • Did not provide any steps to re-enable or bring their account back online
  • Worst of all, did not provide any contact information to the user for them to contact facebook.

A lot of the actions above can be easily handled by setting up triggers in your database or code. The disabling action should trigger an email, of which, should contain the reasons for disabling the user. The reasons can be linked to the users profile, provide that string of text in the email. Furthermore the contact details should be provided in the email template and/or a list of things the user can do in the meantime. Rather than getting frustrated and writing a blog post, like me. :)

Now, I have actually emailed facebook, the disabled email address is disabled@facebook.com. I found that address thanks to Steve Ganz doing a search for me. (Which I’ll admit, I should have thought of doing, but was so confused I didn’t) The url to that page is http://www.facebook.com/help.php?hq=account+disabled. We will see how this comedic drama of my account being disabled turns out. Hopefully Facebook can clean up their customer support and disabled account policies in the meantime as well.

Updates:

7/13 @ 4:05pm: It is a Sunday and typically not a “business day”…but 12 hours since my account was disabled and still no contact from facebook support or a reply to the disabled email address.

7/13 @ 4:30pm: Thanks to a tip from @carlayoung on twitter, I have fwd’ed my email to their appeals@facebook.com email address for yet another attempt at opening communication lines up.

7/14 @ 8:05am: It has been a full day since my first emails have been sent off to Facebook’s disabled support and I still have not received an email. My account is still disabled.

7/15 @ 4:55 pm: Facebook finally re-actived my account and said that I need to browse Facebook less…interestingly enough, they state there are rate limits, but refuse to state what those rate limits are.

Share on:
  • Sphinn
  • StumbleUpon
  • Reddit
  • del.icio.us
  • Digg
  • Facebook
  • Mixx
  • Ma.gnolia
  • NewsVine
  • TwitThis

When I started learning about SEO and the role it can play for any business, whether small or large, there was one quote that put it all into perspective. It was a business meeting that I was having with the owner of our company at the time and he said to me: “We have to find a way to position ourselves so people find us and not us going out finding people.”

Well, those words really inspired me to search for the answers to this, which ended up being search marketing. (no pun intended on the search comment, I swear!). Businesses have spent years spending countless dollars on acquisition going outbound. This is a VERY time consuming and resource intensive venture. Can you imagine the dollars you would have to spend hiring Telemarketers, Mass Mailers, Account Executives, etc. Yes, these are still very effective channels and you can still target and acquire customers this way, but, why not do it, with less resources, less dollars, etc.

Alright, I get it, I am preaching to the choir as fellow search marketers, you know this and understand it, intimately. But, as it turns out many small businesses are still relying on these traditional and old school outbound marketing tactics to acquire new customers. Any traditional channel that you can think of, SMBs are squeezing out every last drop. There is not only a lack of knowledge, but also of time and execution for an inbound style of customer acquisition.

If we put a little perspective on this, we can gain a little more understanding about how the Customer Acquisition model is changing and how positioning yourself to be found is more effective.

Imagine your a small business, put yourself in the shoes of an accounting firm. You have little to no understanding of marketing, sales and you are trying to target small business for accounting and bookkeeping services. What do you do? Well, there are a few options you can choose from:

  • Hire telemarketers to generate leads
  • Hire a Sales Executive to not only generate leads, but also close deals, etc.
  • Go to Hoovers or Dunn and Bradstreet and buy a list. After which you need to put together a mass direct mailer. Keep in mind you would still need to import this data into some sort of CRM package AND on top of that, follow up. (yawn. been there. done that.)
  • Buy tons of print media spots in magazines, newspapers, etc.

Think about all of the above strategies for a second and how much time, money or resources could be wasted with any and/or all of them. I have even seen and heard small business owners tell me that they are doing things like buying electronic signs in the thousands, to attract attention. While this is a fairly “inbound” technique, it is still very costly, for little to absolutely no gain. While, implementing PPC, this business could receive about as many visitors in one day for about ~$50. Even implementing some very simple Local SEO would help that business gain just as much traffic.

All of these very costly activities coupled with the fact that Search Marketing is not only more targeted but also more measurable is leading to that shift. Not only is it hitting the small business market, but also larger organizational strategies are changing. Focusing acquisition on inbound techniques, hiring more and expanding inhouse search marketing teams, etc.

Customer acquisition should really focus on the positioning of your organization to be found. Using SEO and PPC, this is VERY possible. Business on the web and in general is going to focus on this more and more in years to come. People SEARCH for products, services, etc. and any organization that does not adjust its customer acquisition strategy for this, is going to lose. Position yourself to be a winner.

Share on:
  • Sphinn
  • StumbleUpon
  • Reddit
  • del.icio.us
  • Digg
  • Facebook
  • Mixx
  • Ma.gnolia
  • NewsVine
  • TwitThis

Since I just bought my new Macbook Pro, I had to reinstall all of my Firefox extensions, plugins and tools. So, I figured, hey, why not write a detailed post with examples about my “Top 7 Firefox extensions, plugins, and tools” that are near and dear to my heart!

Top 7 Firefox Extensions, Plugins, and Tools:

1. Firebug: If you haven’t used this yet and you are working on something internet related then you are surely missing out. I love the fact that I can pull it up to either fix issues, work on making adjustments on the fly, doing competitive analysis or a site audit.

Here is a screenshot of the FireBug window open and inspecting a section of the page:

FireBug for Firefox

2. Y! Slow: Since site speed is such an important part of conversion, you can use this to do some testing on your websites to test how they are running in certain environments. It provides data like overall page size and # of seconds the page took to load. Now, note that this all depends on your connection speed, always remember that there are people downloading pages at slower speeds, then you might be.

Y! Slow shown here in the Status Bar:

YSlow Extension for FireBug

3. SearchStatus: I love the SearchStatus tool because it has the ability to show me PageRank, Alexa Rank and Compete Rank. I know, I know, I think we are all passed using PageRank as a measuring stick (My PageRank is bigger than yours!…Ha! I’ve been dying to say that!), but still beneficial none-the-less. Also, search status is very easy to do things like turning on no-follow highlighting, link reports, meta tags, etc.

SearchStatus in the Firefox status bar:

SearchStatus Firefox Extension

4. SEOBook SEO for Firefox Extension: If you are an SEO, this is definitely a tool that you need to for competitive analysis, link building and even helps me when doing keyword research.

SEO for Firefox in the SERPs:

SEO for Firefox in SERPs

SEO for Firefox links under the search field in Google:

SEO for Firefox under Search Box

5. SEOBook Rank Checker: Another great tool from SEOBook and something that I end up using daily. (Yes, I’m addicted to rankings! Don’t lie, you are too!)

Rank Checker in Firefox (status bar icon is highlighted):

SEOBook Firefox Rank Checker Tool

6. Web Developer Toolbar: This is great when I want to test pages with images off, javascript off, and many other important functions.

Screenshot of the menu option, Tools -> Firefox:

Firefox WebDeveloper Toolbar

7. LiveHTTPHeaders: Simply put this is great for checking HTTP header status codes, is great for verifying 301/302 redirects, 200’s, etc.

LiveHTTPHeaders in action:

LiveHTTPHEaders Firefox tool

Don’t forget to follow me on twitter: Tony Adam

Share on:
  • Sphinn
  • StumbleUpon
  • Reddit
  • del.icio.us
  • Digg
  • Facebook
  • Mixx
  • Ma.gnolia
  • NewsVine
  • TwitThis

If you know me at all by now, you will know that I am typically a very humble and modest person that just sits back and enjoys the show. I never usually rant or get involved in heated discussions because I hate drama and thats why I have grown to LOVE the SEO industry. So, I apologize in advance if any of this seems out of character or if this is off topic from my general posting.

First and foremost, I want to start by thanking all of the great people I have met throughout the years of being an SEO and Web geek. People like Todd Malicoat, Dana Todd, Rand Fishkin, Oilman, Greg Boser, Brett Tabke, Brent Csutoras and Chris Winfield.

The reason I bring this up is because of how thankful I was to get involved in the SEO industry or community. From my first PubCon in 2004 to SMX Advanced just a couple days ago. I remember my first conversation with Brett and how it inspired me. I told him how awesome the show was and we talked about how I got into it, etc. and his words are what have pushed me daily. “Thats what this is all about, getting people like you interested and involved.”

Now, I went to school to study Computer Science and never thought I would be involved in anything marketing related. But, I realized that some developers are the most egotistical people I have met. Don’t get me wrong, there are still a lot that aren’t and actually care. But, after going to SXSW 2008, I noticed that many are just touting their own ego. If you aren’t one of the “cool kids” then good luck having conversations with them.

This really reminded me of what I love about the SEO community, you could have a conversation with just about anyone. You’ll find they wouldn’t judge you based on who you are. Maybe I am just being naive, but thats how I have felt.

Recently, I am seeing a “tipping point” or maybe a “breaking point” of some sort in the SEO community. Certain people cliquing, others acting as if they are similar to the “cool kids” mentioned above, etc. This is ridiculous especially because some people, if not most people, outside our industry still see SEO as spam. Stop bickering and start working together. Stop complaining and provide someone constructive criticism, but do it in a way that can be effective, without causing a stir.

I hope and pray that our industry does not break away from being a community that really cares about each other. Because, I am starting to see that happen and I am not sure if it is the immaturity of the individuals within the community. But, whatever the case may be, I have grown and loved is that we are a community and I do not want to see that change.

Remember, a few bad apples can ruin the entire batch community. I love this industry and community too much that I don’t want to see that…

Share on:
  • Sphinn
  • StumbleUpon
  • Reddit
  • del.icio.us
  • Digg
  • Facebook
  • Mixx
  • Ma.gnolia
  • NewsVine
  • TwitThis