当我在magento中进行内部搜索(即搜索产品)并在此之后尝试过滤结果(按价格过滤)时,会在我的网址中添加一些查询字符串,但Google会指出类似于重复的内容。
Magento在类别和产品上都有规范标签功能,但我无法在"搜索"查询和过滤器。
我的问题是:当我过滤结果时,如何在magento的搜索中添加规范标签?
答案 0 :(得分:0)
我们通常建议隐藏内部网站搜索以获取索引(您可以使用标准的“NOINDEX,FOLLOW”标记执行此操作)。
但是如果由于某种原因你真的需要索引它,这里是最简单的代码,可以让你添加一个规范的URL。
请注意,在这种情况下,我们使用默认搜索。在此代码中,规范URL仅包含搜索查询,不包含任何过滤器。
/应用/设计/前端/ {your_package} / {your_theme} /template/page/html/head.phtml
添加此代码:
<?php
$controller = Mage::app()->getFrontController();
if(is_object($controller) && is_callable(array($controller, 'getAction'))){
$action = $controller->getAction();
if(is_object($action) && is_callable(array($action, 'getFullActionName'))){
$fullActionName = $action->getFullActionName();
}
}
if(!empty($fullActionName) && $fullActionName == 'catalogsearch_result_index')
{
$request = $this->getRequest();
$params = $request->getParams();
if(!empty($params['q'])){
$action = $request->getActionName();
if($action == 'index'){
$action = '';
}
$canonicalUrl = $this->getBaseUrl() . $request->getRouteName() .DS. $request->getControllerName() .DS. $action . '?q=' . $params['q'];
echo "<link rel=\"canonical\" href=\"$canonicalUrl\" />";
echo "<!--Canonical URL was added from template head.phtml-->";
}
}
?>
另请注意,我们建议使用工具栏参数limit = all。没有它,很难在页面上获得正确的Canonical URL。
如果此参数已打开,(您可以在System-&gt; Configuration-&gt; Catalog-&gt; Catalog-&gt; Frontend-&gt;允许每页允许所有产品下查看),您需要添加'限制=全部'到URL。
P.S。要详细了解该主题,请阅读Google的本指南:http://googlewebmastercentral.blogspot.com/2013/04/5-common-mistakes-with-relcanonical.html
答案 1 :(得分:0)
您也可以通过robots.txt避免使用抓取工具
User-agent: *
Disallow: /catalogsearch/