Ecshop DIY系列1——深度SEO优化

 

      Ecshop是一个非常专业的网店系统,是许多个人开店的首选,总的来说EcshopSEO架构设计方面是很专业的,但是慢慢的你就发现,它还是有许多不足和遗憾。废话就不多说了,下面就开始我们DIY之旅——深度SEO优化。

      首先说明一点,本文中提到的所有修改的效果均可在本人的网店上http://www.bingguagua.com看到。

 

一、完全自定义页面titile,完全抛弃Ecshop定义的页面title格式:[产品名称]_[分类名]_[网店名称]-Powered by ECShop

1、分析:大家都知道,titilekewordsdescriptionSEO中的基础性和重要性,但是ECshop官方给出的titile实现方法会出现很多类似或相同的页面title,另外还有部分页面无法自定义kewordsdescription。在此本人给出了完全自定义的方法,其实方法很简单的,只要稍微懂得一点点代码的都会。

2、修改包括:品牌页,商品页,商品分类页,文章页,文章分类页

3、修改涉及的页面:

·品牌页(增加title,keywordsdescription):

upload/brand.phpupload/admin/brand.php、upload/admin/templates/brand_info.htm

·商品页(增加title):

upload/goods.phpupload/admin/goods.php、upload/admin/templates/goods_info.htm

·商品分类页(增加title):

upload/category.phpupload/admin/category.php、upload/admin/templates/category_info.htm

·文章页面(增加title):

upload/article.phpupload/admin/article.php、upload/admin/templates/article_info.htm

·文章分类页(增加title):

upload/article_cat.phpupload/admin/articlecat.php、upload/admin/templates/articlecat_info.htm

4、具体修改:现在就拿品牌页的修改来举例:

A、首先是修改数据库,未安装的在数据库结构文件upload/install/data/structure.sql中改,已安装的手动在安装后的数据库中改,对brand表增加brand_titlebrand_keywordsbrand_description等字段

B、接着修改upload/admin/brand.php,这个文件是管理员后台文件,

·88行:

    /*插入数据*/

    $sql = "INSERT INTO ".$ecs->table('brand')."(brand_name, site_url, brand_desc, brand_logo, is_show, sort_order) "."VALUES ('$_POST[brand_name]', '$site_url', '$_POST[brand_desc]', '$img_name', '$is_show', '$_POST[sort_order]')";

    $db->query($sql);

改为:

    /*插入数据*/

    $sql = "INSERT INTO ".$ecs->table('brand')."(brand_name, site_url, brand_desc, brand_title, brand_keywords, brand_description,brand_logo, is_show, sort_order) "."VALUES ('$_POST[brand_name]', '$site_url', '$_POST[brand_desc]', '$_POST[brand_title]', '$_POST[brand_keywords]', '$_POST[brand_description]', '$img_name', '$is_show', '$_POST[sort_order]')";

    $db->query($sql);

·113

    /* 权限判断 */

    admin_priv('brand_manage');

    $sql = "SELECT brand_id, brand_name, site_url, brand_logo, brand_desc, brand_logo, is_show, sort_order "."FROM " .$ecs->table('brand'). " WHERE brand_id='$_REQUEST[id]'";

    $brand = $db->GetRow($sql);

改为:

    /* 权限判断 */

    admin_priv('brand_manage');

    $sql = "SELECT brand_id, brand_name, site_url, brand_logo, brand_desc,brand_title, brand_keywords, brand_description,brand_logo, is_show, sort_order "."FROM " .$ecs->table('brand'). " WHERE brand_id='$_REQUEST[id]'";

    $brand = $db->GetRow($sql);

·151

    /* 处理图片 */

    $img_name = basename($image->upload_image($_FILES['brand_logo'],'brandlogo'));

    $param = "brand_name = '$_POST[brand_name]',  site_url='$site_url', brand_desc='$_POST[brand_desc]', is_show='$is_show', sort_order='$_POST[sort_order]' ";

改为:

    /* 处理图片 */

    $img_name = basename($image->upload_image($_FILES['brand_logo'],'brandlogo'));

    $param = "brand_name = '$_POST[brand_name]',  site_url='$site_url', brand_desc='$_POST[brand_desc]',brand_title='$_POST[brand_title]', brand_keywords='$_POST[brand_keywords]', brand_description='$_POST[brand_description]',is_show='$is_show', sort_order='$_POST[sort_order]' ";

   

C、紧接着修改upload/admin/templates/brand_info.htm

·在第31行插入:

<tr>

    <td class="label">页面标题</td>

    <td><input type="text" name="brand_title" maxlength="120" value="{$brand.brand_title|escape}" /></td>

  </tr>

  <tr>

    <td class="label">页面关键词</td>

    <td><input type="text" name="brand_keywords" maxlength="120" value="{$brand.brand_keywords|escape}" /></td>

  </tr>

  <tr>

    <td class="label">页面描述</td>

    <td><textarea  name="brand_description" cols="60" rows="4"  >{$brand.brand_description}</textarea></td>

  </tr>

 D、最后修改upload/brand.php ,这个文件是前台控制文件

·9394

      $smarty->assign('keywords',    htmlspecialchars($brand_info['brand_desc']));

    $smarty->assign('description', htmlspecialchars($brand_info['brand_desc']));

改为:

      $smarty->assign('page_title',    htmlspecialchars($brand_info['brand_title']));

    $smarty->assign('keywords',    htmlspecialchars($brand_info['brand_keywords']));

    $smarty->assign('description', htmlspecialchars($brand_info['brand_description']));

 

      就这样,品牌页的title,keywordsdescription全部实现了自定义,商品页、商品分类页、文章页、文章分类页都只需要增加title,修改方法与品牌页(brand)完全相同,想怎么改完全由你自己决定。

 

二、修改余下的页面title格式

1、分析:Ecshop每个页面都包含了商店标题,不利于SE,也不够个性化,前面已将重要的页面修改成有利于SE的,剩下的可以改你自己喜欢的格式,比如:首页格式:商店标题_商店名称;商品名称_分类名称_商店名

2、修改文件includes/lib_main.php

3、具体修改:

·142

      $page_title = $GLOBALS['_CFG']['shop_title'] . ' - ' . 'Powered by ECShop';

改为:

      $page_title = $GLOBALS['_CFG']['shop_name'];

·在241行插入:

      if ($filename == 'index')

             $page_title=$GLOBALS['_CFG']['shop_title'] . '_'  . $page_title;

 

三、404优化

1、分析:众所周知,404出错处理不当对搜索引擎收录的影响是非常大的,ecshop在这方面做得非常的差,甚至导致了很多的站不被搜索引擎收录。ECSHOP程序文件category.phpgoods.php等页面多处存在以下这样的代码:ecs_header("Location: .//n");exit;以上代码的意思是,如果找不到当前ID下的分类或者商品,则跳转到网站首页。这样子跳转,返回的HTTP代码将会是302,表明此页面信息暂时性转移,这类跳转代码很容易引起搜索引擎封杀,因此我们需要作出404的优化。

2、修改涉及的文件:

article.php,article_cat.php,brand.php,category.php,comment.php,goods.php,topic.php

3、修改方法:将以上7个文件中的

      ecs_header("Location: .//n");

全部改为

    ecs_header("HTTP/1.0 404 Not Found");

    $smarty->display('404_error.html');

同时在模板文件中加入404_error.html文件

 

四、首页链接

      现有许多模版的头部文件page_header.lbi的代码对首页链接都做得不够好,举默认模版为例。

<div class=”f_l”><a href=”../index.php” name=”top”><img src=”../images/logo.gif” /></a></div>

      这一段代码链接内容里省略了站点名称,没有重视锚文字的应用,也没有title 属性和LOGO图片的alt属性,这严重的浪费了站点名称的排名效果。建议改为:(以本人的为例)

<div class=f_l><a href=http://www.bingguagua.com name=top title=“饼瓜瓜月饼商城首页”><img src=../images/logo.gif alt=“饼瓜瓜月饼商城logo/></a></div>

 

      经过这一番改造,已经能够应付基本的SEO优化了。喜欢DIY Ecshop的朋友们可以自己亲手试一试。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值