在特定产品上设置NOINDEX,NOFOLLOW


17

我的magento商店具有以下允许Google /搜索引擎抓取整个网站的条件。

<meta name="robots" content="INDEX,FOLLOW" />

我现在需要一些特定的产品:

<meta name="robots" content="NOINDEX,NOFOLLOW" />

这样Google不会对它们进行爬网/编制索引。这可能吗?产品将是随机的(即,不是所有产品都来自一个类别),因此如果需要,我需要能够逐个产品地做到这一点。

我知道我可以在url的基础上做到这一点,例如:

<?php
$currentUrl = Mage::helper('core/url')->getCurrentUrl();
if ($currentUrl == 'xxxxxxx')
{
    <meta name="robots" content="NOINDEX,NOFOLLOW" />
}
else
{
    <meta name="robots" content="INDEX,FOLLOW" />
}
?>

但随着时间的流逝,最终可能会有成百上千的此类行为。

Answers:


23

在Magento管理员中,编辑产品时,转到标签,design然后将以下内容添加到custom layout

<reference name="head">
      <action method="setRobots"><meta>NOINDEX,NOFOLLOW</meta></action>
</reference>

+1但他确实说可能有成千上万的产品……
paj 2015年

1
@paj是,但产品是随机的,因此这是唯一的清洁选择。
桑德·曼格尔

它不应该是<value>NOINDEX,NOFOLLOW</value>不是<meta>NOINDEX,NOFOLLOW</meta>
Arvind07年

18

您可以controller_action_layout_generate_blocks_after像这样观察事件:

public function setRobots($observer) 
{
     $controller = $observer->getAction();
     $fullActionName = $controller->getFullActionName();
     if ($fullActionName == 'catalog_product_view') { //if on product page
          $product = Mage::registry('product'); //access the current product if needed
          if (your condition here) { //condition to set the robots to noindex, nofollow
              $observer->getLayout()->getBlock('head')->setRobots('NOINDEX,NOFOLLOW');
          }
     }
}

“您在这里的条件”可能是自定义属性,因此,您可以快速批量导入1000个产品的自定义属性值。
paj 2015年

@paj。当然。可以是任何东西。产品属性,配置设置。
马里斯(Marius)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.