我希望有人可以帮助我解决我过去几天一直试图解决的问题。我想完全从搜索引擎中隐藏 Magento 的分层导航,但让用户可以使用它。出于 SEO 的原因,我不想满足于 NoFollowing 所有链接,或者使用 noindex follow 元标记,甚至完全用 Robots.txt 阻止它。处理此问题的最有效方法是仅向启用 Cookie 的用户显示分层导航,因为 Google 不使用 Cookie。使用 JavaScript 也可能达到相同的效果,但我选择了 Cookie 方法。
到目前为止,我已经设法实现了一个粗略的 JS 来检查页面加载后是否启用了 cookie(改编自这个论坛上的另一个线程)。如果启用了 cookie,它什么也不做并显示分层导航,但如果未启用 cookie,我想删除“catalog.leftnav”块。我一生都无法从我的 JS 脚本中弄清楚如何做到这一点。我所能实现的只是删除 div 元素,或者将 style.display 设置为 none 等,虽然所有这些技术都从前端删除了链接,但 Google 仍然可以看到它们。这是我到目前为止在模板/目录/层/filter.phtml 中的代码示例
<div id="shop-by-filters">
<ol>
<?php foreach ($this->getItems() as $_item): ?>
<li>
<?php if ($_item->getCount() > 0): ?>
<a href="<?php echo $this->urlEscape($_item->getUrl()) ?>" rel="nofollow"><?php echo $_item->getLabel() ?></a>
<?php else: echo $_item->getLabel() ?>
<?php endif; ?>
<?php if ($this->shouldDisplayProductCount()): ?>
(<?php echo $_item->getCount() ?>)
<?php endif; ?>
</li>
<?php endforeach ?>
</ol>
</div>
<script type="text/javascript">
if (navigator.cookieEnabled) {
return true;
} else if (navigator.cookieEnabled === undefined) {
document.cookie = "testcookie";
if (cookie_present("testcookie"))
return true;
} else {
var elem = document.getElementById('shop-by-filters');
elem.parentNode.removeChild(elem);
}
</script>
谁能帮我解决这个问题,或者有更好的方法吗?请记住,我仍在尝试了解 Magento,因此如果实施很复杂,我可能需要一些说明。
谢谢你。
布伦登