Many believe it's impossible or prohibitively expensive to develop an AJAX web application that also performs well from the perspective of SEO or search engine crawlability. However, by using XSL (a templating language for XML), the HTTP Accept header, and API-driven development, you can now present an appropriately formatted document regardless of the technology being used to access the site. Additionally, applications developed in this manner perform well across many browsers (even lynx) and assistive technologies for the disabled.
You're about to dive into the de facto introduction to Progressive Enhancement for AJAX!
Typically, web applications use a server-side template language. The controller usually passes a bunch of variables to a view that is rendered into HTML and then served to the user. With API-driven development, you have the controller pass back the same data as an XML document straight out to the browser. The XML document has a special tag that tells the browser to grab a template and transform the data and the template into an HTML5 document. All modern browsers support XSL now. Plus, all the pages' template rendering occurs within the client--freeing your server from having to render those documents itself, caching commonly used templates semi-permanently in the browser cache.
Therefore, the traditional "view" of MVC is pushed out to the client. But, if the browser's HTTP Accept header doesn't indicate that it supports XSL, then the entire page will be rendered on the server side into HTML.
Once you've seen the fundamentals demonstrated in a normal browser and seen it subsequently picked apart with Firebug, we'll take the application for a quick spin in the text-only lynx browser to demonstrate just how a search engine would perceive that same application--if not to prove that it does, in fact, work.