A lot of designers discourage the use of tables but I have a layout where I'll use more div structure to achieve something made simple with a table..
Are tables bad for search engines?
edit: I will use CSS for the table to keep the HTML clean.
A lot of designers discourage the use of tables but I have a layout where I'll use more div structure to achieve something made simple with a table..
Are tables bad for search engines?
edit: I will use CSS for the table to keep the HTML clean.
As far as SEO is concerned, search engines do not care. However, the idea is to separate design from content. Tables should strictly be used for tabular data, divs for layout. Using tables for design purposes mixes your markup with layout elements, which is regarded as bad practice.
HTML tables are good:
Non-tabular data presented as HTML tables are bad for:
To see your site as search engines try to visit it with text browser like ELinks or lynx.
It's been said before, and I'll say it again.
Tabular data
- Use tables
Layout
- Use Divs
I have a layout where I'll use more div structure to achieve something made simple with a table..
Sounds like you're trying to cut corners or make it easier for you to finish the job. In any case, there are a few exceptions where using a table might be crucial but without viewing what the design looks like, I can't say.
<table>
s vs. <div>
s will have little or no effect on your SEO results. However, putting titles and keywords into your <h1>
, <h2>
, <h3>
, etc.. tags will help.
Google doesn't care for ranking purposes what your code looks like. They only care that your visitors react well to it.
As long as your site works for your users there are no penalties from Google for how you structure your markup.
On the other hand, when users find your site unappealing, or when it doesn't work for them, they leave. Google does notice when users come back to the results page after visiting your site and click on your competitors. Your rankings fall when that happens
Search engines do not have a preference when it comes to tables and/or CSS, and you can even use both on the same page without issue.
If you really wanted to push it, I suppose page load time is something to keep in mind. It is a known factor in AdWords Quality Score, and there is definitely evidence of Google checking out user behavior in the SERPs, so if they see a high rate of abandonment (customers getting impatient with the page load time), you can lose out on rankings. Divs and CSS load faster than tables.
Ok, here's the deal.
It must be said, that tables are meant for tabular data, not layout. You're making accessibility a issue on both older mobile phones and text-based browsers used by the visually-impaired.
Now, Google's algorithm most definitely takes that into account. I don't know the specifics algorithm, but I would guess that when someone is on a mobile phone, Google gives results that it knows is more appropriate to a mobile phone - so you might be losing a great deal of potential visitors if you use a table for layout.
Depending on your layout, you might also be making it difficult for the search engine to determine which text and paragraphs are related to which. This could be bad for your ranking, but probably not too much. With CSS layout it is, however, easier to ensure that the main content of your page is near the top, which always helps.
Thirdly, using tables for layout duplicates a lot of HTML markup for every page in your site that is loaded. This duplication will effect your page-load time, even if it is only slightly, but Google, among other engines, are known to use load time as one of their metrics in determining site rank.
All in all, I don't think the difference in main search engine ranking would be that great. There are definite advantages to using div
s CSS for layout though, as noted in this post, and it should therefore be the recommended course of action, unless there's a really good reason for going the table route (which there rarely is).
Yes, table design are bad for S.E.O.
The best thing to do for S.E.O. optimization is considerate that a bot read your site as a blind.
So, when you use a table design, it's impossible to properly linearize your content, and impossible to know what is on the top and what isn't.
Try to do a site conform with section 508 (see this article about validators for it) and WCAG from the WAI (take look here for validation), and try to read it with tool like Lynx, or after a linearization (with the Web Developer Toolbar of Firefox by exemple).
The more your respect the grammar (<p>
is for paragraphs, <table>
for tabular content...), of the (x)HTML, the more it improve its accessibility AND its S.E.O..
So, use <table>
for tabular data, not for design, use <h1>
as the first heading title not a <span>
with syles, etc., and don't use some <h3>
just to make your text bolder and bigger, but because you put a first and a second heading title, and you need to create a sub section of the previous <h2>
section in the structure of your document (not your webpage).
An important thing to do it easy is to know and use the document flow.
HTML tables should be used for tabular data and data sets (input as well as output) that flow naturally as tabular data such as forms. Using them for layout only is inadvisable.
As for SEO and Google, well, I believe Google applies the same logic as above, in any case nesting textual information deep in such a structure, rather than with an appropriate structure using headings and paragraphs works better.
On page SEO is related to content (quality, freshness, utility) and how it's wrapped into HTML elements.
Wrapping/composing HTML is choosing right tags for content. It just doesn't makes sense, for example, wrap all text within one h1 element, you putting just text into a form with no field nor submit button.
That said, I will repeat: use tables for tabular data. In this context they makes sense. In other contexts (like for making layout only), they don't.
This kind of misuse is bad for SEO as content is not indexed properly - you can achieve a better on-page ranking through an enhanced, clean and straight to the point markup.
HTML tables are great for SEO.
I used DIVs for years. Then, as an experiment, I decided to use tables on one of my websites for layout. My keyword rankings shot up. I redid my websites one by one to use tables. In every case SEO benefited.
Despite what the web snobs and the "Top Ten Ways to Improve your SEO" articles say, you'll never discover best SEO practices without doing your own tests.
I really don't care what a tag was meant to do, I care about results.