Suppose I went through the trouble to make some nice html5 such as that which can be found on the MDN:
<section>
<h1>Forest elephants</h1>
<section>
<h1>Introduction</h1>
<p>In this section, we discuss the lesser known forest elephants.
</section>
<section>
<h1>Habitat</h1>
<P>Forest elephants do not live in trees but among them.
</section>
<aside>
<p>advertising block
</aside>
</section>
<footer>
<p>(c) 2010 The Example company
</footer>
This can be easily interpreted and a nice outline can be generated.
My question now is, suppose your site has many such articles as the one above, but it serves them via AJAX and HTML injection. So the source when viewed in many browsers shows just a bunch of JavaScript or links to JavaScript, etc. and not this beautiful source.
Does that hide it and make all the SEO efforts for not?
I know the source can be properly viewed in a debugging tool such as firebug, but is that how the source is going to be read for SEO efforts?
In that case is it better to just have page reloads and includes?
Your best bet is to do this on the server side. Depending on your technology, there’s a number of ways you could generate pages. In C#/.NET you would use URL Routing. In PHP I’m not sure the best option for making URLS. Basically, the server uses the data to generate pages that don’t really exist on the server like mydomain/forest-elephants
Regardless, you will want to dump the actual contents to html to your ‘virtual’ pages using the backend. If you are dependent on an HTTP service for your data, you will have to use a server side URL Stream or equivalent to write your HTML for you. The backend could use a template to format your pages and even import your javascript code.
This is not something you’re gonna just plop out in a few hours.