Google在Magento中为缓存的产品图片编制索引

时间:2015-02-27 05:46:41

标签: image magento caching product google-image-search

我在Magento网站上启用了目录图片缓存,产品页面上的图片网址是 http://www.example.com/media/catalog/product/cache/2/image/9df61e8b45590e35df96d9f179ca0b11/p/r/product-name.jpg

现在Google Bot抓取网站会在网址上为这些图片编制索引。但是,一周后,由于以下几个原因,此图像可能不存在: 1.目录缓存已清除。 2.产品图像被更改/覆盖。

当发生这种情况时 - 即使图像显示在图像的Google搜索结果中,在点击访问页面或查看图像时 - 由于服务器上不存在图像,因此不会打开图像。

由于网址结构是默认的Magento结构,我想知道如何进行更改,以便图片链接在Google搜索结果中有效。

1 个答案:

答案 0 :(得分:0)

您可以编写自定义PHP脚本并自行调整图像大小。

并将产品图片请求重定向到自定义脚本。

在媒体模板文件中,您可以定义图像,例如:
productimage / 14432/1/2 .jpg(其中14432将是product_id,1可能是主图像/样本等,而2.jpeg 3.jpg可能负责大小等图像变体)

然后在.htaccess中,您可以将所有productimage URL重定向到自定义脚本,并在该脚本内部解析来自url和process image的参数(如果需要,可以缓存)

   RewriteCond %{REQUEST_URI} ^/productimage
   RewriteRule .* imgcustomprocessing.php [L]

imgcustomprocessing.php 这样的脚本可能会像这样开始(只是一个粗略的想法)

<?php 
require_once 'app/Mage.php';
Mage::app( "default" );


$req =  $_SERVER['REQUEST_URI'];
$req = explode('/',$req);
$req = array_filter($req);
$req = array_values($req);

$product_id =$req[1];

$product = Mage::getModel('catalog/product')->load($product_id);

//to get a real image path
$url =  Mage::getUrl('media') . 'catalog/product' . $product->getImage();


// then here load php libraries for image resizing for example http://phpthumb.sourceforge.net/ pass the $url 
// put here code for re-sizing image/caching and displaying