I'm doing some SEO for a website I haven't built and it has this navigation bar:
<div align="right" id="menu">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center" class="menuitem1" onmouseover="this.className='menuitem1a'" onmouseout="this.className='menuitem1'" onclick="window.location='index.php'" >
<div style="margin-top:80px">Profile</div>
</div></td>
<td><div align="center" class="menuitem2" onmouseover="this.className='menuitem2a'" onmouseout="this.className='menuitem2'" onclick="window.location='customers.php'">
<div style="margin-top:80px">Customers</div>
</div></td>
<td><div align="center" class="menuitem3c">
<div style="margin-top:80px">Services</div>
</div></td>
<td><div align="center" class="menuitem4" onmouseover="this.className='menuitem4a'" onmouseout="this.className='menuitem4'" onclick="window.location='products.php'">
<div style="margin-top:80px">Products</div>
</div></td>
<td><div align="center" class="menuitem5" onmouseover="this.className='menuitem5a'" onmouseout="this.className='menuitem5'" onclick="window.location='contact.php'">
<div style="margin-top:80px">Contact</div>
</div></td>
</tr>
开发者_运维知识库</table>
</div>
First thing I noticed, it has no anchors! Second when I made a sitemap of the website only index page was there. EDIT:It also spits errors on evaluation! Does this nave a negative impact from SEO perspective? Thanks in advance!
Yes it does. Since the JS is usually ignored by the crawler, it can't get to the rest of the pages because the navigation will not work for it. You need to change those DIVs to anchors and style them appropriately to retain the old style.
Also, this method isn't very accessible either since it's not obvious from the page content which of the elements are links. Never mind semantics
Google supposedly can follow JS nowadays, but yea, that's atrocious markup. Also really bad for accessibility. And just plain hard to maintain. Plus, it has way more markup than needed, and google never complains if you lighten your page sizes.
As for validation, that probably doesn't have that much impact on SEO (if it did, half of Google's index would be empty).
My guess is that's Adobe Dreamweaver markup circa 2000 or it's coming out of a typically bad CMS.
@JohnP already answers the question - this is really bad markup.
A simpler approach would be
<ul id="menu">
<li><a href="index.php">Profile</a></li>
<li><a href="customers.php">Customers</a></li>
....
</ul>
and doing the styling via CSS. (You may need to add the menuitem1
, menuitem2
classes to the <li>
elements if they are differently styled.)
精彩评论