我使用javascript来切换下拉导航菜单。我在想,对于那些禁用js的用户,导航就不会出现了。所以我打算用noscript标签标记导航内容。谷歌会把这看作是重复的内容吗?代码的简单示例:
HTML
<img id="menuicon" onclick="toggle_visibility('nav');" src="someurl" width="32" height="32" />
<ul id="nav">
<li><a href="">SomeMenuItem</a></li>
<li><a href="">SomeMenuItem</a></li>
<li><a href="">SomeMenuItem</a></li>
</ul>
<noscript>
<ul>
<li><a href="">SomeMenuItem</a></li>
<li><a href="">SomeMenuItem</a></li>
<li><a href="">SomeMenuItem</a></li>
</ul>
</noscript>CSS
#menuicon { cursor: pointer; }
#nav { display: none; }JS
function toggle_visibility(id) {
var e = document.getElementById(id);
if(e.style.display === "block"){
e.style.display = "none";
}
else {
e.style.display = "block";
} }发布于 2016-04-18 00:01:12
为了避免内容重复的机会,我建议在之后加载菜单项,然后使用javascript来安排它。例如:
<div ID="menu">
<!-- Insert menu items here -->
</div>
<script>
document.getElementById("menu").style.visibility="hidden";
//code to arrange and position menu box as desired
(handle of thing to click to activate menu).onclick=showmenu;
function showmenu(){
document.getElementById("menu").style.visibility="visible";
}
</script>代码需要处理,但重点是首先使菜单项可用,这样无论javascript支持如何,每个人都可以访问菜单。然后,当javascript处于活动状态时,在加载所有内容之后,可以按需要对菜单进行样式化和定位。
发布于 2016-04-18 01:37:18
首先,关于@Mike在他的回答中说的话,Google爬虫现在可以将Javascript生成的内容解释为爬行DOM,而不是源代码,所以从爬行的角度来看,这样做并没有真正的区别。此外,Google不惩罚基于noscript标记的内容,因为人们认识到noscript标记中的内容只显示在javascript被禁用的地方,而这是极少数互联网用户。在过去的测试中,Google甚至没有使用嵌入在测试站点noscript标记中的关键字作为关键字,因为它不会显示给所有用户。
发布于 2016-04-18 10:35:59
重复内容与重复元素
把重复的内容和重复的元素混为一谈是来自世界各地的站长的一个常见错误。在决定哪种选择最适合你之前,最好先确定两者之间的区别。
什么是重复内容?
Google和其他搜索引擎将重复内容确定为包含非常高比例的内容的页面,这些页面在内部或外部与另一个页面的内容相当。使用片段,引用来自其他页面或站点的块不会导致页面重复,假设您在内容区域中的某些内容是唯一的。
在这一天和时代重复的内容是预期的,为了避免任何搜索引擎的惩罚或混淆它的网站很好地使用规范链接,它是为此目的发布的。
什么是重复元素?
重复的元素是非常常见的,而不是你应该关心的事情,因为Google和其他主要搜索引擎期望基于模板的元素,例如导航在一个或多个页面上重复多次,例如,在站点顶部看到社交链接是很常见的,而在底部,标记可能会不同,或者完全相同于不同的CSS样式。
现在,许多网站使用多个导航栏进行桌面和移动,使用媒体查询和显示:无。谷歌不在乎,但是如果可能的话,你应该避免重复的元素,为什么?减少代码并用于管理目的。
避免重复元素
在大多数情况下,可以通过做一些研究或知识来避免重复的元素,在很多情况下,比如手机导航栏,管理员之所以这样做,是因为他们知道该怎么做,或者他们懒惰,想要一个快速而肮脏的解决方案。
在您的情况下,我相信您使用的解决方案不是最好的实用解决方案,是可以避免的。您可以通过使用。不-js或类似的非js解决方案来选择使用现代派。
您只需将类no-js添加到主体中,只要启用JavaScript,它就会删除no-js并添加js,这意味着您可以控制站点的样式,而无需使用<noscript>和创建可避免的重复元素。
然后,您的CSS将如下所示:
#nav { display: none; }
.no-js #nav { display: block; }然后,您可以将.no-js用于站点中需要对no-js环境进行调整的所有其他功能。
https://webmasters.stackexchange.com/questions/92525
复制相似问题