OpenCart: Автоматическое заполнение meta keywords для улучшения SEO

OpenCart: Автоматическое заполнение meta keywords для улучшения SEO Если у вас большой ассортимент товаров в магазине и нет времени каждому прописать keywords, то такой вариант может сэкономить время, автоматически прописывая в метатег keywords слова из заголовка.

OpenCart так построен, что когда поле "meta keywords" не заполнено в админке, то оно и не выводится в шаблоне страницы вообще. Это не очень хорошо для оптимизации. Заполним его автоматически, продублировав слова из названия товара.

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

<head>
<title>122-02 Модерн</title>
<base href="http://ocstore:8888/" />
<meta name="keywords" content="122-02,Модерн,122-02 Модерн" />

Не идеал, но вроде бы лучше, чем ничего. В то же время вручную описать эти поля никто не мешает, и в случае их заполненности автоматика не вмешивается. Делать автозаполнение для "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.

Добавляем в /catalog/controller/common/header.php:

...
$this->data['description'] = $this->document->getDescription();
$this->data['keywords'] = $this->document->getKeywords();
$this->data['links'] = $this->document->getLinks(); 
$this->data['styles'] = $this->document->getStyles();
$this->data['scripts'] = $this->document->getScripts();
$this->data['lang'] = $this->language->get('code');
$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 автоматическое заполнение meta-keywords */
               // If keywords and description not set - use title here too
               if( empty($this->data['keywords']) )
               {
                       $words = explode(' ', $this->data['title']);
                       $this->data['keywords'] = implode(',', $words) . ',' . $this->data['title'];
               }
/* SEO автоматическое заполнение meta-keywords */
...

 

 

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.



Другие статьи по этой теме:

Комментарии (3)     Подпишитесь на RSS комментариев к этой статье.

3 комментариев

#441
Максим говорит:
April 22, 2012 at 04:08 pm

Дублирования слов можно избежать, если из предложенного кода убрать

 . ',' . $this->data['title']


#701
Алексей говорит:
November 15, 2012 at 01:08 pm
Что-то у меня на OpenCart Version 1.5.3.1 не заработало, а так хочется (
#722
Владимир говорит:
December 6, 2012 at 03:27 pm
Максим, какого дублирования слов, не объясните подробнее?