Ouais, AJAX ne fait pas bon ménage avec l'indexation hélas
Le meilleur moyen que j'ai pu imaginer jusqu'à présent c'est de fournir un site rétro-compatible « 0 javascript ». Sans même aller chercher à identifier les clients du site web d'une quelconque manière, tu balance le même document à tout le monde, et le script (non éxécuté par les bots) se chargera de rendre le tout interactif.
Ça a également un autre intérêt, c'est que tu peux associer des URL réelles à des pages de ton site, bien que pendant une navigation normale (avec javascript), celles-ci sont chargées en AJAX.
Par exemple, tu peux considérer qu'un utilisateur sans javascript n'a que droit de lecture, et que toutes les fonctions avancées sont accessibles via javascript, du coup tu balance une page bidon avec juste le texte, et le reste, c'est le navigateur qui s'en charge.
Après, il y a un nombre incroyable de façons de procéder pour réaliser ça, donc à toi de voir pour les détails (sachant que ça ne va pas influencer que l'implémentation, mais aussi les fonctionnalités et la souplesse du truc). Je te suggérerais juste de regarder si un format comme JSON ou YAML (mais plutôt JSON quand même) ne te conviendrait pas plus que du XML. (Si tu ne veux pas utiliser de XSL(T), le XML me semble moins intéressant… à toi de voir)
Autre chose, de ce que j'ai compris, les bots n'aiment pas (du tout ?) le xml… Je ne sais pas si les choses ont évolué depuis le temps, mais il est probable que s'en tenir à du (X)HTML valide et accessible soit encore la meilleure façon de s'en sortir.