I have a site that is built completely in XML and is transformed by a single XSL file. How does this affect SEO? Is it possible to store page-specific metadata? Will robots see the transformed page (the result of the XSL stylesheet) or the plain XML?
SEO can still be done well if you take care of:
- Sitemaps: for dynamically generated links
- Standard vocabulary: Not only for reuse with some service (like Google Maps), but also "metavocabulary" (like Dublin Core)
- Webmaster tools: from search engines.
The robots will see what you send from the server.
If you send an XML that has a link to a style sheet, the robots will see the XML. If you transform the XML into HTML on the server, the robots will see the HTML.
Most search engine robots that crawl the web, look for specific tags within a HTML page. I don't believe they will use your XSL to transform the XML before trying to recognize the tags in that page.
So if your page has a <title> tag, <h1> tags, quality content in <p> tags, etc... some robots might understand it as html and index it properly like regular html.
But why bet on this?
If you are really concerned about SEO for your website, you should think about transforming these pages on the server and just serve plain html back to the robots and users.
Also, relying on the browsers to transform your XML+XSL properly (as you expect it) is a bad idea and is most probably broken in more ways than I can even imagine.
You might also be interested to read the XML+XSLT: Good SEO? Lets find out! blog post that has a link to a discussion on google webmaster forums.