ECSHOP程式SEO完全最佳化

來源:互聯網
上載者:User

標籤:des   http   io   os   ar   檔案   資料   art   sp   

一、完全自訂頁面titile,完全拋棄Ecshop定義的頁面title格式:[產品名稱]_[分類名]_[網店名稱]-Powered by ECShop

1、分析:大家都知道,titile,kewords,description在SEO中的基礎性和重要性,但是ECshop官方給出的titile實現方法會出現很多類似或相同的頁面title,另外還有部分頁面無法自訂kewords和 description。在此本人給出了完全自訂的方法,其實方法很簡單的,只要稍微懂得一點點代碼的都會。

2、修改包括:品牌頁,商品頁,商品分類頁,文章頁,文章分類頁

3、修改涉及的頁面: 品牌頁(增加title,keywords和description):brand.php、admin\brand.php、 admin\templates\brand_info.htm

商品頁(增加title):goods.php、admin\goods.php、 admin\templates\goods_info.htm

商品分類頁(增加title):category.php、admin\category.php、 admin\templates\category_info.htm

文章頁面(增加title):article.php、admin\article.php、 admin\templates\article_info.htm

文章分類頁(增加title):article_cat.php、admin\articlecat.php、 admin\templates\articlecat_info.htm

4、具體修改:現在就拿品牌頁的修改來舉例:

1)  首先是修改資料庫,未安裝的在資料庫結構檔案install\data\structure.sql中改,已安裝的手動在安裝後的資料庫中改,對brand表增加brand_title、brand_keywords和brand_description等欄位

2) 接著修改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]‘ ";

 

3)緊接著修改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>

4) 最後修改brand.php ,這個檔案是前台控制檔案

·93、94行

$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,keywords和description全部實現了自訂,商品頁、商品分類頁、文章頁、文章分類頁都只需要增加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最佳化,眾所周知,404出錯處理不當對搜尋引擎收錄的影響是非常大的,ecshop在這方面做得非常的差,甚至導致了很多的站不被搜尋引擎收錄。

1、分析:ECSHOP程式檔案category.php及goods.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檔案

ECSHOP程式SEO完全最佳化

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.