Monday, October 26, 2009

AJAX based sites crawlable

As a SEO person, i always find it difficult to do search engine optimization for AJAX based sites. Today google proposal comes as blessing when Google proposes to make AJAX based sites crawlable. While AJAX-based websites are popular with users, search engines are not able to access any of the content on them

Here's how search engines would crawl and index AJAX based sites:

Slightly modify the URL fragments for stateful AJAX pages

Stateful AJAX pages display the same content whenever accessed directly. These are pages that could be referred to in search results. Instead of a URL like http://example.com/page?query#state we would like to propose adding a token to make it possible to recognize these URLs: http://example.com/page?query#[FRAGMENTTOKEN]state . Based on a review of current URLs on the web, we propose using "!" (an exclamation point) as the token for this. The proposed URL that could be shown in search results would then be: http://example.com/page?query#!state.

Use a headless browser that outputs an HTML snapshot on your web server

The headless browser is used to access the AJAX page and generates HTML code based on the final state in the browser. Only specially tagged URLs are passed to the headless browser for processing. By doing this on the server side, the website owner is in control of the HTML code that is generated and can easily verify that all JavaScript is executed correctly. An example of such a browser is HtmlUnit, an open-sourced "GUI-less browser for Java programs.

Allow search engine crawlers to access these URLs by escaping the state

As URL fragments are never sent with requests to servers, it's necessary to slightly modify the URL used to access the page. At the same time, this tells the server to use the headless browser to generate HTML code instead of returning a page with JavaScript. Other, existing URLs - such as those used by the user - would be processed normally, bypassing the headless browser. We propose escaping the state information and adding it to the query parameters with a token. Using the previous example, one such URL would be http://example.com/page?query&[QUERYTOKEN]=state . Based on our analysis of current URLs on the web, we propose using "_escaped_fragment_" as the token. The proposed URL would then become http://example.com/page?query&_escaped_fragment_=state

Show the original URL to users in the search results

To improve the user experience, it makes sense to refer users directly to the AJAX-based pages. This can be achieved by showing the original URL (such as http://example.com/page?query#!state from our example above) in the search results. Search engines can check that the indexable text returned to Googlebot is the same or a subset of the text that is returned to users.



For complete proposal, visit Google webmaster central blog

Sunday, October 18, 2009

What is web2.0?

The Internet continues to evolve at an accelerated rate, with new technological innovations being introduced all the time. This is constantly forcing us to rethink not only how we currently use the web, but also in what new possibilities lie in the future. The rapid adoption in which these new technologies and services are being integrated into our lives, are dramatically changing the way we communicate, socialize, share and locate information, entertain ourselves and shop for goods and services. This rapidly evolving landscape of “next generation” technologies and companies, are being categorized as Web 2.0.

Because these applications predominately “live” online, a strong collaborative and collective nature is being harnessed. Where the web was once a static and passively consumed experience, it is now dynamic, transactional and interactive, where participation is not optional, it is mandatory.

It is no surprise a common characteristic of many Web 2.0 websites, applications and companies, is their use of the LAMP (Linux, Apache, MySQL, PHP) open source stack. This allows fast-growing sites to deliver performance, scalability and reliability to millions of users. MySQL enables up-and-coming Web 2.0 sites like Wikipedia, FeedBurner and digg, - as well as established web properties like Craigslist, Google and Yahoo! - to scale out and meet the ever-increasing volume of users, transactions and data.

What is Web 2.0?

Web 2.0 can generally be thought of as the technologies and web sites who leverage users and developers in a socially collaborative manner in order to rapidly develop data and applications with a high level of integration across platforms and other services.

The term Web 2.0 was first coined back in 2004 during a brainstorming session between Tim O’Reilly of O’Reilly Media and MediaLive International, a company which puts on technology tradeshows. The term was originally intended for use as the name to describe an upcoming conference showcasing new web-based companies and technologies that had emerged post dot-com bubble. The term “Web 2.0” has since been dismissed as a marketing buzzword, co-opted and validated several times over by various individuals and companies. It has typically been used as a way to describe the new technologies and companies that are revolutionizing the way we use and think about the World Wide Web.

Tim O’Reilly expands further on the definition of the term, in his article What is Web 2.0:
Web 2.0 applications are those that make the most of the intrinsic advantages of that platform: delivering software as a continually updated service that gets better the more people use it, consuming and remixing data from multiple sources, including individual users, while providing their own data and services in a form that allows remixing others, creating network effects through an architecture of participation and going beyond the page metaphor of Web 1.0 to deliver rich user experiences.

In the following sections we delve deeper into four ideas central to the discussion of Web 2.0, which O’Reilly and others have elaborated on since the initial emergence of the term. They include:
  • Characteristics and Core Competencies of Web 2.0
  • The Web is the Platform
  • An Architecture of Participation
  • Hierarchy of “Web 2.0-ness

Characteristics and Core Competencies

Seven characteristics and core competencies of Web 2.0 are as follows:
  • They should be in the business of providing services not packaged software, while enabling cost effective scalability.
  • They should also exercise control over unique, difficult to replicate data sources which get richer the more individuals use and contribute to them.
  • Trusting users as co-developers.
  • Harnessing collective intelligence.
  • Leveraging the long tail through customer self service.
  • Software above the level of a single device.
  • Lightweight user interfaces, development models, AND business models.

The Web is the Platform

The Web has become the destination where it all happens. The exchange and distribution of ideas, how we socialize, conduct business, work, and play is increasingly finding its way on to the Web. Of course, at the heart of these interactions are the people, applications and the data that drive them.

Not many years ago it would have been hard to imagine the Web as a strategically important platform for many of the things that are now common place, like trading stocks, booking travel, conducting commerce, bartering for goods and services, finding new/old friends or even a potential life mate. This perception was often due to the fact that the applications making use of the web as a platform, were often sluggish, had few security controls, were graphically uninteresting, or were held captive by the speed of the end-users internet connection. When comparing these characteristics against the existing desktop applications of the day, it is no wonder some people found it hard to imagine that the web could ever be considered a viable platform over the desktop.

Fast forward a few years and web applications are now beginning to provide close to if not better end-user experiences. The evolution we are witnessing is that of the web quickly becoming the next “desktop”, or more specifically, the next operating platform on which applications are being designed to run on exclusively.

An Architecture of Participation

The concept of an architecture of participation is typically used to describe companies, technologies and projects, intentionally designed for contribution from developer communities and individual users with an emphasis on empowerment and openness. Often times this concept is closely linked to open source projects and companies.

It may be worth noting that a technology or company that is open source does not necessarily mean it automatically exhibits an architecture of participation. However, it is often much easier for open source companies and projects, as they will likely have a devout and often vibrant developer community. Many times proprietary products find it difficult to cultivate a participatory quality without heavy subsidization. This can be further complicated if the source code is closed, or the exposed APIs are complex, making even peripheral contributions difficult.

A “release early and release often” development cycle, characteristic of open source software, is an excellent way to include a community of volunteers and parties with vested interests in the software, to test and help debug code. Often the introduction of new features is done in strategic locations on a website or within an application to help ascertain its popularity or usability. This helps developers understand if the feature should be more widely employed and enhanced, or abandoned all together.

An architecture of participation also relates to the idea of users creating meaningful and valuable data for themselves. Often times the application simply provides the framework and tools to empower users in this capacity. A practical manifestation of this may include seller ratings, user recommendations and restaurant reviews.

Some examples of applications which typify this concept include:
  • Feeds: Users and applications allow their content to be picked up for distribution to subscribers
  • Blogs: Users create site content and drive traffic
  • Social Networking: Users create site content and through their social channels to build a network
  • Wikis: Users contribute articles and manage the content for accuracy and relevance

Hierarchy of “Web 2.0-ness”

O’Reilly also articulated a “hierarchy” of degrees to which an application possesses or typifies Web 2.0 attributes.
  • Level 3: Could ONLY exist on the Web and draws its essential power from the network and the connections it makes possible between people and applications.
  • Level 2: Could exist offline, but has unique advantages by being online.
  • Level 1: Can and does exist offline, but gains additional functionality by being online.
  • Level 0: The application has primarily taken hold online, but it would work just as well offline if you had all the data in a local cache.

Monday, October 12, 2009

Facebook Manners

Do you have good Facebook manners? Timmy and Alice don't. Watch their bad behavior to learn the dos and don'ts of Facebook breakups.

Monday, October 5, 2009

How to promote a group on facebook

Success of any group is based on what kind of posts (NOT people) are there on that group. I have seen groups where there are more than 500 people on that group but there is hardly any post / topic e.g. search for Pune group and you will see what i mean. If you look at those people's profile who have joined that group, they have mentioned that they love that city ...etc. but they hardly participate in any topic or discussion and there is hardly any activity since months.

Things to take into consideration while forming a group:
  • Whenever you create any group try to encourage people to talk by either starting some topic/discussion or let other to start.
  • Make sure all the group sections are used to their fullest potential. When you first start the group, you'll see sections for Recent News, Discussion Board, The Wall, Photos, Links and Video. Put something new and relevant in all these sections.
  • Put the link for the group in most if not all your other communications.
  • Make it very easy for group members to share the group with their Facebook friends. Other people, with whom you are not directly connected will automatically join your group.