Does using CSS have any affect on SEO?

Firstly of all, I get asked this question time and time again, and people seem to believe that the use of Cascading Style Sheets (CSS) will help with their Search Engine Optimisation (SEO). Well, does it?

The short answer is no. The long answer is as follows...

To begin with we will look as to why CSS has nothing to do with SEO by looking at the most popular Search Engine's webmaster guide lines.

You will quickly notice that none of these pages contain anything about CSS, this is because you will find that search engines don't even read CSS.

Once you realise that the search engine probably doesn't even download your CSS file, you soon realise that the style of your page actually has no affect on your efforts to SEO. The search engine is more interested in the HTML, (ie the content). Most of the time, the search engine will actually strip the tables or divs when it processes the page as they serve no purpose for indexing pages. See: Poodle Predictor

It is argued that using CSS forces you to use clean HTML code, and therefore CSS does help with SEO. I partially agree to this, however you have to remember that search engines are backwards compatible, and still read table layouts all the same. Still this argument is flawed as its the HTML that is optimised, the style of the page still has no impact on SEO, infact you could do away with the CSS file all together, and it will still rank the same on search engines.

One of the things I notice recently about the industry is the way people seem to work these days. Often web design, web development and SEO cross, and people don't clearly define them seperately.

A web designer is someone who designs and does not code (think of an artist), therefore a web designer must use a graphics package (such as photoshop) to design their web site layout. These applications use (very bad) html table layouts to produce the pages. They would not use CSS as this is "programming". Yes, thats right CSS is NOT designing.

A web developer is someone who minipulates the web design to give the website its functionality. Once they have a design from the web designer, they would begin optimising the code and perhaps only then would they begin to use CSS.

Search Engine Optimisation is NOT web design, its mainly about marketing but usually requires some web development.

The main reason for using CSS over a table layout is because tables are there to provide a method to display tabular data, not to form a layout for your web page. It is also good practice that you seperate the page content from the page style as this allows for more flexablility, and because CSS is used it forces you to have clean HTML as you are more organised. See "Why tables for layouts are stupid"

One of the major benifits to everyone for using CSS is with regards to bandwidth, as using a table layout is more code, than a layout created for use with CSS. One of the down sides, is that your beautiful CSS page style may not work properly on older browsers, where as a table layout would. One of the other major benifits of using a layout that is designed for use with CSS over table layouts is that it allows you to put your contents BEFORE your navigation (as long as the browser supports it). There are plenty more pros and cons of using CSS, but they all have nothing to do with SEO, as the style of the page means nothing to a search engine.

In summery, using CSS is definatly a better way to develop websites, but it doesn't matter to the search engine whether you use CSS or not, they still view the page exactly the same, as it is the HTML that is important.

Still don't believe me? Try this: Completly block search engines from reading your CSS file all together (using robots.txt), and see if you rank any differently on the search engines.