Forum Moderators: not2easy
I was reading up on some SEO techniques and got to thinking about my new found love for CSS. Since CSS is browser side and the spiders (from my understanding) ignore CSS, does this not mean that in cleaning our code with proper CSS we are also removing many important tags for SEO purposes?
Since in CSS we clean our html or xhtml by moving tags like; <b>, <u>, and <i> to the CSS file we are also removing the weight those tags hold to the spiders in a SEO sense.
I understand that we are still using our h1, h2, h3..., keywords, and keyphrases, but if the CSS is hiding everything else, are we not also making a sacrifice?
Personally I believe that the cleaner code using proper xhtml and css is by far better than the code of old, but just how much in SEO terms are we sacrificing if any?
I would be very interested to read any theories, suggestions, opinions, and/or facts about this topic.
Thank you for your time.
Yes Mattur, it is agood link and interesting read.
As long as people still have the ability, right, and desire to express personal opinion there will always be at a minimum of two sides to every story. The interpretation of proper semantics, coding, style, css, framework, seo, and whatever else you can think of will always remain an open discussion.
If it works and the relating software as well as hardware is willing to cooperate, then I think I will make things easy on myself and keep it simple.
Maybe I complicated things by starting out with xhtml even though I did not and still do not have a complete understanding of xhtml.
html 5 promises to address many existing problems dating back to the beginning of the internet, but just like all promises, I predict that html 5 will fall short and many developers will continue to utilize markup that has been "tagged" for deletion.
Back on the original topic:
Some search engines (the one that's most important even: Googlebot) does download CSS every so often. I've no idea what they do with it, but they grab a copy every so often.
I've on my biggest site 3 downloads in the current month from 3 different Google owned IP addresses with a Googlebot UA ...
I'm not privy to what they do with it, but they sure keep downloading it.
I will continue to focus on clean code and more relevant seo standards leaving the css strictly for style as it is intended.
I have heard of bot picking through the css files, but like many, I have an incomplete or rather non-existent understanding of what goes on when the bots grab this information.
I guess in the long run after all these great replies the fact remains that when it comes to css, there really is not much relevant weight in seo terms to be lost or gained.
At any point, this has been a fun discussion and read for me.
Something else to consider is that pages with efficient code will load faster and that will be good for the user experience. That's a good thing for its own sake, but it will also have indirect SEO benefits, as happy users are more likely to tell friends about the site, mention it on their blogs, and so on.
For example, assume that you are "listening" to the page rather than viewing it.
Popular screen readers like Jaws and Windows Eyes do not by default announce b, i, strong or em, and it's not possible to configure different pitch or volume for these elements either.
Jaws users can find by font attributes (eg finding bold text, like a sighted user visually scanning the page) but IIRC it treats b, strong and em as "bold" text...!
It finally seemed silly to code things such as disabled="disabled" - code bloat. So, for all my sites. I ran quickly through BBEdit and globally converted back to HTML 4.01 strict. I'm with her and some of the other writers I've seen: XHTML is way overboard, and a dead path.
I agree with SuzyUK about b and i, too. While "italic" may not have a strictly "semantic" meaning, I think "bold" is a double-edged sword of sorts. It means, not only, bold thick print, but also, bold emphatic communication. B bold!
While I agree divitis is dangerous, a little div'ing is a good thing, of course... I've prepared for html5 with a few things like divs with ids like article, aside, header, footer, and the like. And I also like Andy Clarke's advice, using CSS3 features for excitement, so long as their lack of support on some browsers doesn't make the page fail.
As for SEO, I follow the sage advice of webmasterworld. I found a few of Brett's tricks in a book, that worked for one of my clients quite nicely this year. The client was very pleased.
And, doofus that I am, for another client, I finally got it through my thick head the benefit of STRICT html with external CSS. One client, within a two-week period, changed his mind 3 times about the skin: new version, old version, nope, new version again. (I just renamed the CSS.)
If you have a hidden div, chock full of keywords, you can bet that Google is algorithmically detecting this.
While attending SMX East this fall, I heard Maile Ohye of Google's Webmaster Tools team state that Google looks out for simple hidden text exploits such as hidden layers in CSS.
ALSO, for sites where the content is hidden temporarily until a visitor clicks to make it appear or expand it open, Google may discount the importance of that content. They are operating under the belief that content which is hidden from an enduser may make less impression upon them when they arrive on the page and may be less important that content that is more immediately visible.
So, it appears that they may algorithmically detect if content is permanently hidden vs content which is merely not displayed until a user interaction displays it.
For example, assume that you are "listening" to the page rather than viewing it. What does <b> mean? It means "bold". Ok, so what does that mean semantically when that section gets read? Absolutely nothing. "Bold" describes presentation, not content. On the other hand, if it was marked up with <strong>, that has semantic meaning, which can be interpreted to be audibly different than the surrounding text. The same holds true with regards to <i> and <em>. <i> meaning "italicized" has no semantic value, but <em> has a semantic meaning of "emphasis".
From my perspective it's the use of a language defines the semantics.
People use the <b> tag to mean text that stands out from other text. This text is louder so it certainly qualifies under your "listening" test.
This has been the consensus interpretation of bold text for 100's of years. People have always "heard" it louder.
Whereas <strong> is a well meaning attempt to create a semantic tag that never caught on. It now universally means <b> to every browser because that is what people already semantically understood strong emphasis to mean.
<strong> is an alias for <b> that uses almost 3 times the bytes.
<p><movie>The Titanic</movie> was a movie about a passenger ship named <shipname>The Titanic</shipname> of <adverb>titanic</adverb> proportions.</p>
You will tend to prefer<em> and <strong> over <i> and <b>. The whole point of semantics is to make the document smarter by providing textual context clues to machines who cannot understand context, and i and b don't contribute to anything but the visual.
The whole point of semantics is to make the document smarter by providing textual context clues to machines who cannot understand context, and i and b don't contribute to anything but the visual.
Right so search engines and other online applications don't consider <b> and <i> tags to be emphasis, they just issume it's purely visual information and ignore it.
Got it :-)
– Serving XHTML as text/html is completely pointless.
– Serving XHTML as text/html is completely pointless.
There is a difference, and it is subtle. I would argue that <strong> and <b> are semantically the same, <em> and <i> are not.
<em> is for emphasis, a font could be bolded, perhaps enlarged to represent shouting, coloured red for anger, coloured blue for cold et cetera. There are many ways in which you may need to emphasise type, and depending how you do it, it will have a different semantic meaning, and without downloading and analysing the style sheet a search engine would not be wise to make too many judgements regarding the relevance of an <em>emphasised</em> word or paragraph.
Since <b> and <strong> are purely a typographic emphasis, I would suggest that one of them be depreciated. (From a semantic stand point, strong should be the one to go, since bold is bold and the function of <strong> can be fulfilled with <em>)
<i> Represents italics, which is exactly what it should be used for. From Wikipedia:
---
§ With regards to the whole (x)html thing, I code using strict xhtml, and send it as
text/html. I like the well formedness that xml brings to html. I like to close my tags and I like to write lower case. I also like the little x too. I know it's wrong. I am also a little embarrassed when I serve it up as text/html. I find the idea of content negotiation for the purpose of sending my mash as application/xhtml+xml a little silly too. It's a mess, and a bad habit. I am looking forward to adopting HTML5 and moving on, until I do, I am going to have to stick with writing malformed HTML, it's not right – but it works ;p
Right so search engines and other online applications don't consider <b> and <i> tags to be emphasis, they just issume it's purely visual information and ignore it.
"For the most part don't worry about it [..] Google does treat bold and strong with exactly the same weight [..] em and italic are treated exactly the same as well" - Matt Cutts
[video.google.com...]
The <b> tag is considered to provide semantic information. It always has been, probably always will be. This is because the actual users of HTML define it's semantics, just like any other language.
About the only thing I'm cautions with, where CSS is concerned, is I don't use an image as a background title loaded via CSS if the image alt tag via HTML will help rank for a targeted keyword. Alt tags don't affect the algo that much but every little bit helps sometimes.