i'm not someone to care much about search engine optimization. i don't bother writing pages with the goal to lure bots in, because it's just not why i put things online. despite my lack of caring, however, some of my blog posts happen to do quite well when it comes to search engine rankings. so why does this happy accident happen?
to answer that, we need to talk about accessibility, and what makes a website accessible in the first place. now, a lot of people can tell you a lot of different things about what will make a website accessible, but in my opinion, the core of an accessible website is good markup.
when you have clean and well-written HTML, your website will be parsed properly by any good browser out there, and it will naturally lend itself to things like keyboard navigation and screen readers. when users override your stylesheet or forego it entirely, they will still be able to see everything; even someone who simply reads the raw HTML source will be able to understand things.
there are, of course, many other small details that improve the accessibility of your website, but focusing on clean HTML at the core of it all is the best way to go about it. of course, i'm not the first to come up with this idea; this philosophy of progressive enhancement has been discussed for nearly as long as the web itself has existed. it is perhaps the founding principle of web accessibility as we know it today.
but this article isn't about accessibility, actually. it's about search engine optimization, remember?
now, chances are if you're the kind of person who cares about SEO, i'd guess you probably don't care about progressive enhancement. after all, if you see accessibility as little more than a legal requirement — something you do without understanding why because the lawyers tell you to — why would you bother with any of that? of course, i've never been in those shoes, so i'm only guessing there.
but as it turns out, the principles i just mentioned for accessibility will also help with search engine optimization. a search engine, after all, is just another program that parses the markup of a page; so if your page is easily parsed by accessibility tools, it's likely to be parsed just as easily by crawlers. assuming the underlying content is actually any good, the crawler will have an easier time extracting that content, and therefore, rank your page higher.
of course, all of that will only help if you're writing things people actually want to read.