Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

Opencart 1.5.x (catalog): SEO - автоматическое заполнение meta keywords

15 ноября 2011 г. Ruslan Brest Просмотров: 13899 RSS 9
Howto » SEO » OpenCart

Если поле "meta keywords" не заполнено в админке, Опенкарт его не выводит. Для улучшения ситуации заполним его автоматически, продублировав слова из названия товара.

В результате у нас будет что-то вроде:

<head>
<title>Аппарат для приготовления блинов Bomann CM 2221 CB</title>
<base href="http://a4u.com.ua/" />
<meta name="keywords" content="Аппарат,для,приготовления,блинов,Bomann,CM,2221,CB,Аппарат для приготовления блинов Bomann CM 2221 CB" />

Не идеал, но вроде бы лучше, чем ничего. Или ручное прописывание у всех товаров, хи-хи. В то же время вручную описать эти поля никто не мешает, и в случае их заполненности автоматика не вмешивается. Делать автозаполнение для "meta description" не решился, потому что одинаковое название и описание не приветствуется. Но кому хочется - могут дописать if( empty($this->data['description']) ) $this->data['description'] = $this->data['title'];

Для версий Opencart 1.5.x, включая 1.5.1.3; ocStore 1.0.1.

diff --git a/public_html/catalog/controller/common/header.php b/public_html/catalog/controller/common/header.php
index 79bf735..1904774 100644
--- a/public_html/catalog/controller/common/header.php
+++ b/public_html/catalog/controller/common/header.php
@@ -18,6 +18,15 @@ class ControllerCommonHeader extends Controller {
                $this->data['direction'] = $this->language->get('direction');
                $this->data['google_analytics'] = html_entity_decode($this->config->get('config_google_analytics'), ENT_QUOTES, 'UTF-8');
 
+               // SEO improvements:
+               // If keywords and description not set - use title here too
+               if( empty($this->data['keywords']) )
+               {
+                       $words = explode(' ', $this->data['title']);
+                       if(count($words) > 1) $this->data['keywords'] = implode(',', $words) . ',';
+                       $this->data['keywords'] .= $this->data['title'];
+               }
+
                $this->language->load('common/header');
 
                if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS']
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us
Более 1000 готовых шаблонов Opencart для интернет-магазинов
Комментариев: 9
  1. Приветствую! По вашим статьям сделал поиск товаров по SKU - все работает, спасибо.

    Потом добавил поле для поиска по sku в админку.

    А после этого хотел сделать автоматическое заполнение полей "meta keywords" вставил нужный код в файлик /сайт/catalog/controller/common/header.php

    В результате теперь название полей поменялось на:

    Notice: Undefined variable: entry_seo_h1 in /var/www/smin135/data/www/turcmdhost.tk/admin/view/template/catalog/product_form.tpl on line 36

    и

    Notice: Undefined variable: entry_seo_title in /var/www/smin135/data/www/turcmdhost.tk/admin/view/template/catalog/product_form.tpl on line 40

    а в полях написано:

    Notice: Undefined index: seo_h1 in /var/www/smin135/data/www/turcmdhost.tk/admin/view/template/catalog/product_form.tpl on line 37

    и

    Notice: Undefined index: seo_title in /var/www/smin135/data/www/turcmdhost.tk/admin/view/template/catalog/product_form.tpl on line 41

    Соответственно.

    Что бы это значило, и как исправить?

  2. 2012-03-13 в 05:19:48 | Ruslan Brest

    Эта модификация для витрины магазина. А у вас все ошибки в админке. Не тот файл меняли.

  3. Небольшое дополнение. Если title из одного слова, то будет два одинаковых кейворда

    $this->data['keywords'] = implode(',', $words);

    if($this->data['keywords'] != $this->data['title']) $this->data['keywords'] = $this->data['keywords'] . ',' . $this->data['title'];

    Вообще, думаю, для поисковиков нормально даже если один ключ, дело не в количестве. Но если он будет совпадать с , а в последнем целое предложение, будет нехорошо.

  4. 2012-03-19 в 18:33:46 | Ruslan Brest

    Добавил проверку.

  5. Добавил на 1.5.1.3 не вижу изменений не каких.

    хм странно вообще не видно keywords на сайте в товарах =(

    Он берёт из титла и на главной коверкая её =(

  6. а как сделать, чтобы в keywords писалось не Title, а Name товара?

    То есть, значение колонки product_description.name ?

  7. Автоматический meta description, это конечно мощно))).

    Кто рекламировался в ЭдВордсе, тот хорошо знает, что от заголовка и текста объявления, CTI (кликабельность) может отличаться в разы (2-3 раза).

    meta Title и meta description надо писать по правилам создания объявлений в ЭдВордс. Во всяком случае, мне так кажется...

  8. 2015-10-30 в 05:32:58 | Ruslan Brest
    Автоматический meta description, это конечно мощно))).

    Где meta description? Читайте внимательней.

    meta Title и meta description надо писать по правилам создания объявлений в ЭдВордс.

    Пишите, никто не мешает. Даже если бы тут заполнялось meta description, а не keywords - если поле заполнено человеком, то выводится именно оно.

  9. "Делать автозаполнение для "meta description" не решился, потому что одинаковое название и описание не приветствуется. Но кому хочется - могут дописать:..."

    Ну чего ты? Мне блог понравился -респект! Если не понравился бы, не утруждал-бы себя писаниной)))

    Я мысль продкинул: метадискрипшн имеет смысл писать не с оглядкой на СЕО, а с оглядкой на кликабельность в выдаче. Вот здесь возрази!

    Насколько поднимешься в выдаче если будешь писать тайтл и дескрипшн для ботов? И насколько повысишь кликабельность, если будешь писать для людей?

    Я пользу пытался принести)))

Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

Авторизация  Facebook. MaxSiteAuth. Loginza

(обязательно)