Many Web developers and Webmasters have some confusion or trepidation over how best to write their HTML for search engine optimization (SEO). Luckily, writing HTML that cooperates well with search engines is not too hard at all. The three primary factors that determine how much a search engine likes your site are technical items you control (HTML, existence of site maps, etc.), the content that you control (the actual text of the pages), and things outside of your control (inbound links from other sites, how other sites rank, and so on). Yes, search engines have dramatically improved their abilities to extract meaning from HTML code and match it to their users' search criteria, but that does not mean that you cannot help them out on your end.
In the early versions of the HTML spec, it described what documents should look like with no concern for what things actually meant. Back in the HTML 3 (and earlier) days, we said that text was "bold" or "italicized" but since HTML 4, we say that text is "strongly important" or "emphasized." That is a big difference! Likewise, we can now differentiate between making the title of a book italicized (with a citation) and making a word italicized for emphasis. And with CSS, we can make those different semantics look the way we want them to; we are not forced to use a tag that doesn't apply to our text semantically just to get the styling we want.
This is great news for SEO purposes, because it means that if you use proper semantic HTML, the search engines will have a better idea of the topics that your site discusses. Do a thorough review of your site, looking for those tags that specify styling, and replace them with the appropriate semantic tags. And also look for the semantic tags you do have, and ensure that you are using them for the semantics of them, not the styling. For example, if you are using the <strong> tag just to make things bold for styling, then replace them with either <b> or a <span> that provides bold text. This will also protect you from browsers that choose to display those semantic tags with styling other than the common defaults.
What can a person see?
More importantly, if you have text that is designed to be hidden in certain ways (like making the text tiny, or the same color as the background), search engines will assume that you are trying to "cloak" and treat you like a spammer. The last thing you need is to be blacklisted by a search engine because you used unreadable text!
Text should be text
For the longest time, we've been using text in images because it was such a headache (if not impossible in many cases) to specify non-standard fonts, and the design called for just that. The good news is, there are now ways to use non-standard fonts within your design via CSS. You can even use licensed fonts through services such as Typekit now. What this means is that there is no longer any reason for what should be textual content to be locked up in the confines of an image file.
The temptation continues to be to load up your sites with heavy graphics, multimedia, and scripting to provide an interactive experience, but for the sake of SEO, this is counter-productive. Search engines have a budget of time to spend on any given site, so the longer your site takes, the fewer pages the engine will look at. Furthermore, some search engines (notably Google) take the speed of your site into account in their rankings. The moral of the story? Use a variety of techniques to keep your site mean and lean.
Watch your navigation
Try to make sure that for any given piece of content, there is only one URL to reach it. If you can't do this, then use the canonical URL system so that search engines know which URL to list and rank, and do not split their rankings across multiple URLs for the same piece of content, or list the same content twice.
Content is still king
No matter what you do with the design, the content is what really matters to the search engines (and to users too!). The overall goal of your design should be to put the content itself at the forefront both at the code level and the UI level. And your content absolutely must be written in a fashion that uses the audience's language, not your internal jargon, to discuss the topics. Why? Because when you write for the audience, your in-text keywords are in alignment with what people will be searching for! All of your design tweaks won't add up to success if the content isn't what users are looking for. Make sure that your content team researches the kinds of things they need to know to get the best results out of your SEO-optimized design.
Justin James is an OutSystems MVP, architect, and developer with expertise in SaaS applications and enterprise applications.