середу, 19 лютого 2014 р.

Советы по настройке и оптимизации OpenCart

Хочу поделиться несколькими советами по настройке и оптимизации интернет-магазина на движке OpenCart. Возможно, кому-нибудь данный материал окажется полезным. Я использовал OpenCart версии 1.5.3.1 (последней на данный момент). Итак, после установки движка на хостинг проделал следующее:

1) Заходим в панель администратора, далее "Система" - "Настройки" - "Управление магазинами" - жмем "Изменить". Заходим во вкладку "Сервер" и находим раздел "Ключ шифрования:" (значение которого имеет вид 0e485dc46ab8fd0ca460340a0f7a3359 ). Заменяем его на свой.

Советы по настройке и оптимизации OpenCart 

Попутно в данной вкладке включаем ЧПУ. Тип ЧПУ выбираем SeoPro. Включаем "ЧПУ товаров с категориями". "Окончание ЧПУ" - пишем как ".html".
Жмем кнопку сохранить. В корне сайта (магазина) находится файл ".htaccess.txt". Переименовываем его в ".htaccess" (обязательно !!!). Многие забывают это сделать и как следствие красивые урлы страниц не генерируются. Теперь наши страницы с созданными товарами будут иметь вполне красивый вид, типа http://site.ru/категория/имя_товара.html, вместо: http://site.ru/index.php?route=product/product&path=20&product_id=40.
Перед составлением адресов страниц (категории и товары) рекомендую ознакомиться с небольшой статьей "Правильные адреса страниц - что нужно помнить", т.к. из-за некорректных имен url часто возникают проблемы и ошибки. Лучше их сразу избежать на начальном этапе (присвоение имен категориям и товарам).
Мы получили ЧПУ только для товаров и категорий магазина. Однако внизу (в футере) магазина присутствует ряд дополнительных "служебных" меню ("Информация", "Служба поддержки", "Дополнительно" и "Личный Кабинет") со своими подразделами, ссылки которых имеют не совсем привлекательный вид. Например, ссылка "Подарочный сертификат" имеет такой вид: http://www.site.ru/index.php?route=account/voucher. Многие читатели этой статьи задают вопросы о том как сделать подобные ссылки более интересными, например такими: http://www.site.ru/voucher (для тех же "Подарочных сертификатов"). Поэтому решил свой ответ из комментариев к данной статье разместить здесь, дабы более не повторяться и не давать по-сути одни и те же ответы. Итак, если Вам крайне важны и необходимы красивые адреса подобных страниц, к примеру типа:

http://www.site.ru/voucher

вместо

http://www.site.ru/index.php?route=account/voucher (Подарочный сертификат)

или

http://www.site.ru/affiliate

вместо

http://www.site.ru/index.php?route=affiliate/login (Партнерская программа) и т.п.,
то придется немножко повозиться. Вот хороший и подробный материал по этому вопросу:
http://opencartforum.ru/topic/10270-дубли-страниц-seopro/ Рекомендую к изучению. Смотрите 1-ый пост и делайте также. Плюс выполните вот такие два запроса в Вашу БД (для вышеуказанных ссылок Подарочный сертификат и Партнерская программа):

INSERT INTO oc_url_alias (query, keyword) VALUES ('affiliate/login', 'affiliate');
 INSERT INTO oc_url_alias (query, keyword) VALUES ('account/voucher', 'voucher');

где соответственно вместо префикса oc_ следует указать префикс вашей БД. Скачивайте архив "cached_seo_pro_v1.5.3.zip" - заменяете файл "seo_pro.php" (catalog\controller\common). Затем очищаете кэш браузера и очищаете папку "cache" на сервере (system\cache). Ну вроде и все. Аналогично и для других ссылок "служебных" меню в футере.
Еще рекомендую вообще закрыть ссылки в этих служебных меню от индексации поисковыми системами, чтобы не распределять вес на подобные страницы. Ведь нам важно "продвигать" товары и категории интернет-магазина, а не страницы типа "Возврат товара" или "Условия соглашения". В статье Как закрыть ссылки от индексации я указал один из способов как это сделать.
2) Для повышения безопасности интернет-магазина на OpenCart после установки движка не забываем удалить папку  install и изменить права на файлы: "config.php" и "/admin/config.php" на 444. Не лишнем будет и защитита папки "admin" при помощи файлов ".htpasswd" и ".htaccess". Т.е. доступ к ней будет получен только после ввода логина и пароля. Это можно сделать через панель управления хостингом cPanel, либо найти информацию о защите папок при помощи  ".htpasswd" и ".htaccess" в интернете (там ее предостаточно). Если у Вас статичный IP-адрес и Вы уверенны, что он не изменится, то можно поместить в директорию "admin" файл .htaccess примерно следующего содержания:


 Order Deny,Allow 
 Deny from all 
 Allow from Ваш_IP_адрес
 

или дописать эти строки, если файл ".htaccess"уже существует в папке  "admin".
Вот, что я делал дальше, с установленным магазином.
Если кликнуть на логотип вверху сайта с надписью "opencart" или на ссылку вверху "Главная", то открывается главная страница, но в адресной строке url имеет примерно такой вид: http://site.ru/index.php?route=common/home. Уберем лишнее из url, так, чтобы ссылка при клике приняла вид:  

http://site.ru/

Для этого подредактируем файл  "url.php" (путь: system/library/url.php)
Находим строчки (с 25 по 27):

 
 if ($args) { 
 $url .= str_replace('&', '&', '&' . ltrim($args, '&'));  
              } 
 

После них вставляем следующий кусок:


 else { 
      if($route == 'common/home') { 
         if($connection == 'NONSSL') { return HTTP_SERVER; } 
         else { return HTTPS_SERVER; } 
       } 
     } 
 

Все, задача решена.

Теперь избавимся от дублей главной страницы. Изначально, главная страница сайта доступна по следующим адресам: http://www.site.ru/, http://site.ru/, http://site.ru/index.php, http://www.site.ru/index.php. Это очень плохо, ведь для поисковиков это четыре разных страницы (разные URL)! Если не принять меры, то поисковые системы добавят в свой индекс четыре одинаковых страницы. А это признак некачественного сайта! Для того, чтобы избежать такой проблемы в файл ".htaccess", расположенный в корне сайта допишем после RewriteEngine On следующие строки:


 # Редирект c www на без www 
 RewriteCond %{HTTP_HOST} ^www.site.ru 
 RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L] 
 # Редирект для главной (с /index.php на /) 
 RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/ 
 RewriteRule ^index\.html$ / [R=301,L] 
 RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
 RewriteRule ^index\.php$ / [R=301,L] 
 

Не забываем, что файл необходимо сохранить в кодировке UTF-8 без BOM (используя текстовый редактор Notepad++ или Akelapad, например). В противном случае, лишние байты сигнатуры BOM приводят к тому, что веб-сервер не может обработать файл ".htaccess", и возникают ошибки при обращении ко всем файлам директории и подкаталогам. Сохраняем и "заливаем" файл ".htaccess" в корень сайта. Теперь все дубли главной страницы будут склеены редиректом с кодом 301 («постоянное перемещение») с главной страницей – http://site.ru/. Желательно также назначить совпадающее основное зеркало в файле robots.txt. Внизу этого файла дописываем строчку:

Host: site.ru

Разумеется везде, вместо site.ru - используйте свой домен.
Внимание! Бывает, что после применения редиректа с www на без www или наоборот, становится невозможно авторизоваться на сайте в качестве администратора. Для решения этой проблемы (используя ftp доступ к сайту) смотрим и при необходимости редактируем пути в файле "config.php" в папке "admin".
Идем дальше. Внизу нашего сайта (интернет-магазина) видим надпись и ссылку на сайт http://myopencart.ru/:

Работает на OpenCart
Название_магазина © 2012

 Убираем ссылку и меняем надпись на свою. Чтобы убрать эти строчки полностью -  находим файл "footer.tpl" (путь: \catalog\view\theme\default\template\common). Внизу файла удаляем строку: <div id="powered"><?php echo $powered; ?></div>. Либо в это место "футера" вставим счетчики посещаемости. Тогда строка будет вида:


 <div id="powered"><span>код_счетчика_1</span> <span>код_счетчика_2</span></div>
 
Советы по настройке и оптимизации OpenCart 

С помощью css стилей можно отредактировать отступы и выравнивание для блока счетчиков. Для этого идем в папку \catalog\view\theme\default\stylesheet. Открываем файл "stylesheet.css". В его конце (строка 1627, примерно) находим идентификатор "powered"

 
 #powered { 
                  margin-top: 5px; 
                  text-align: right; 
                  clear: both; 
                 }
 

Его и правим, как нам угодно, добиваясь красивого расположения счетчиков внизу страницы. Если же надо просто убрать ссылку на сайт http://myopencart.ru/ и изменить надпись на какую-то свою, то вносим изменения в файле "footer.php" (путь: \catalog\language\russian\common). Внизу файла меняем информацию в строке:


 $_['text_powered']    = 'Работает на <a href="http://myopencart.ru">OpenCart</a>
  %s © %s';
 

Кстати, в файлах движка OpenCart содержится довольно большое количество внешних ссылок, указывающих не только на сайт http://myopencart.ru, но и на другие ресурсы. Найти все незашифрованные ссылки в файлах движка Вам поможет программа NoHiddenLinks, а уж оставлять их или удалять – решайте сами.
Советую также помнить, что в файлах шаблонов, которые Вы устанавливаете для магазина (будь то платные шаблоны или так называемые бесплатные рипы), очень часто встречаются ссылки либо на сайты разработчиков шаблонов (модулей и т.п.), либо на всякие непонятные ресурсы. Зрительно в коде такие ссылки найти достаточно трудно и хлопотно, а в браузерах из-за применения конструкции вида div style="display:none" ссылки не отображаются. Подробнее об этом (и чем грозит для сайта наличие на страницах ссылок-паразитов) рекомендую прочитать в моей статье "NoHiddenLinks - поиск скрытых ссылок в шаблонах и движках".

Модуль "Приветствие".

Советы по настройке и оптимизации OpenCartДля описания магазина (что он продает, какие услуги предлагает и т.п.) я рекомендую включить модуль "Приветствие", который уже имеется в движке магазина. Он дает пользователю начальную информацию и представление об интернет-магазине, его товарах, особенности и работе. А уникальный и грамотно составленный текст описания (1000 - 1500 символов) позволит поисковикам лучше ранжировать Ваш сайт. Итак сначала устанавливаем модуль. В админ панели идем "Дополнения" - "Модули" - выбираем "Приветствие" - жмем "Установить". Далее "Изменить" - "Добавить модуль". Пишем сообщение и включаем модуль. Обновляем главную страницу, модуль включен, но есть один неприятный момент, а именно надпись "Добро пожаловать в Мой Магазин", изменить которую в админ панеле нельзя. "Мой Магазин" - это название сайта (магазина). Соответственно название может быть каким угодно, например: "Сотовые телефоны", "Кондиционеры и сплит системы", "Ноутбуки в  Урюпинске - продажа, цены" и т.п. Согласитесь, что заголовок приветствия вида "Добро пожаловать в  Ноутбуки в  Урюпинске - продажа, цены" как-то не совсем красивый. Для исправления данной ситуации вносим изменения в файл "welcome.php" (путь: \catalog\language\russian\module). В нем всего три строчки кода:


 <?php $_['heading_title'] = 'Добро пожаловать в %s'; ?>
 
Советы по настройке и оптимизации OpenCartСоветы по настройке и оптимизации OpenCart

Убираем лишнее, а именно фразу "Добро пожаловать в  ". Получаем то, что нужно - хороший заголовок:

<?php $_['heading_title'] = '%s'; ?>

Теперь немного по оптимизации данного заголовка. Если просмотреть исходный код главной страницы, то название сайта в приветствии (у меня оно "Мой Магазин") обрамлено конструкцией

<div ="<a class="attribute-value">welcome</a>">Мой Магазин</div>

Для поисковой оптимизации и лучшего ранжирования сайта заключим название магазина в теги <h1>
 
<h1>Мой Магазин</h1>

Для этого открываем файл "welcome.tpl" (путь: \catalog\view\theme\default\template\module):

<div class="welcome"><?php echo $heading_title; ?></div> <?php echo $message; ?>

меняем на:

<h1><?php echo $heading_title; ?></h1> <?php echo $message; ?>

 Стиль заголовка (размер шрифта, цвет, отступы и т.д) меняем в файле "stylesheet.css" (строки 16-24):


 h1, .welcome { 
                     color: #636E75; 
                     font-family: Verdana; 
                     margin-top: 0px; 
                     margin-bottom: 20px; 
                     font-size: 32px; 
                     font-weight: normal; 
                     text-shadow: 0 0 1px rgba(0, 0, 0, .01); 
                    }
 

Как видим для заголовка h1 и класса welcome значения стилей одни и те же.
При просмотре исходного кода главной страницы встречается еще один тег <h1> с названием магазина.

<h1 style="display: none;">Мой Магазин</h1><span class="end-tag">

Располагается он вверху карусели производителей, но из-за атрибута "display: none;" посетителям сайта не виден, зато его прекрасно видят поисковые роботы. Два тега h1 на странице - не есть хорошо. Поэтому удаляем невидимку. Для этого в файле "home.tpl" (путь: \catalog\view\theme\default\template\common) удаляем строчку:

<h1 style="display: none;"><?php echo $heading_title; ?></h1>

Меняем иконку для сайта.
По умолчанию стандартная иконка имеет вид корзины для покупок. Рисуем свою иконку (16х16 px), сохраняем ее как "favicon.ico" и загружаем в корень сайта. Открвываем файл "header.tpl" (путь: catalog\view\theme\default\template\common) и добавляем строчку:

<link rel="shortcut icon" href="/favicon.ico">

robots.txt для OpenCart
Для закрытия от индексации дублей страниц в OpenCart предлагаю вот такой файл robots.txt. Если в нем что-нибудь забыл указать, то просьба знающих людей дополнить или поправить…


 User-agent: * 
 Disallow: /admin 
 Disallow: /cache 
 Disallow: /niks 
 Disallow: /catalog 
 Disallow: /download 
 Disallow: /export 
 Disallow: /system 
 Disallow: /index.php?route=account 
 Disallow: /index.php?route=account/account 
 Disallow: /index.php?route=checkout/cart 
 Disallow: /index.php?route=checkout/shipping 
 Disallow: /index.php?route=common/home 
 Disallow: /index.php?route=product/product/captcha 
 Disallow: /index.php?route=product/product*&manufacturer_id= 
 Disallow: /index.php?route=product/search 
 Disallow: /index.php?route=information/contact/captcha 
 Disallow: /index.php?route=information/information&information_id= 
 Disallow: /index.php?route=account/login 
 Disallow: /*route=account/ 
 Disallow: /*route=account/login 
 Disallow: /*route=checkout/ 
 Disallow: /*route=checkout/cart 
 Disallow: /*route=affiliate/ 
 Disallow: /*route=product/search 
 Disallow: /*?sort= 
 Disallow: /*?sort 
 Disallow: /*&sort= 
 Disallow: /*?order= 
 Disallow: /*?order 
 Disallow: /*&order= 
 Disallow: /*?limit= 
 Disallow: /*&limit= 
 Disallow: /*?filter_name= 
 Disallow: /*&filter_name= 
 Disallow: /*?filter_sub_category= 
 Disallow: /*&filter_sub_category= 
 Disallow: /*?filter_description= 
 Disallow: /*&filter_description= 
 Disallow: /*?tracking= 
 Disallow: /*&tracking= 
 Disallow: /*?manufacturer 
 Disallow: /*?keyword
 Host: site.ru - меняем на свой домен 
 

P/s: По мере возможности я старюсь отвечать на Ваши вопросы в комментариях к данной статье, но помочь, к сожалению, удается увы не всем. Часто возникает дефицит времени и нехватка знаний по движку opencart (новые версии, модули, сборки и т.п.). Поэтому, если в каком-то вопросе я бессилен Вам помочь, не отчаивайтесь и не падайте духом, а посетите специализированный форум opencartforum.ru. Задайте свой вопрос там или воспользуетесь поиском по форуму (возможно, такая же проблема уже возникала у участников данного форума, и пути ее решения уже найдены). Вот, что еще хотел бы посоветовать. Помимо стандартных версий движка opencart-а есть довольно неплохие сборки на его основе, например, сборки MaxyStore (см. сайт http://maxzon.ru/). В них автор (респект ему) провел множество необходимых доработок и полезных изменений, которые наверняка по достоинству оценят пользователи, прочитав длинный список возможностей скриптов MaxyStore (есть разные их версии). Короче, рекомендую.
 В качестве примера приведу сайт hakkorus.ru, над которым я недавно работал. Он как раз базируется на скрипте MaxyStore v.1.5.5.1. А вот и еще один пример на этой же сборке:ventmoskva.ru.


 Купить камеру заднего вида универсальную по лучшим ценам!

Немає коментарів:

Дописати коментар