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

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

С помощью 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 - поиск скрытых ссылок в шаблонах и движках".
Советую также помнить, что в файлах шаблонов, которые Вы устанавливаете для магазина (будь то платные шаблоны или так называемые бесплатные рипы), очень часто встречаются ссылки либо на сайты разработчиков шаблонов (модулей и т.п.), либо на всякие непонятные ресурсы. Зрительно в коде такие ссылки найти достаточно трудно и хлопотно, а в браузерах из-за применения конструкции вида div style="display:none" ссылки не отображаются. Подробнее об этом (и чем грозит для сайта наличие на страницах ссылок-паразитов) рекомендую прочитать в моей статье "NoHiddenLinks - поиск скрытых ссылок в шаблонах и движках".
Модуль "Приветствие".

<?php $_['heading_title'] = 'Добро пожаловать в %s'; ?>
![]() | ![]() |
Убираем лишнее, а именно фразу "Добро пожаловать в ". Получаем то, что нужно - хороший заголовок:
<?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.
В качестве примера приведу сайт hakkorus.ru, над которым я недавно работал. Он как раз базируется на скрипте MaxyStore v.1.5.5.1. А вот и еще один пример на этой же сборке:ventmoskva.ru.
Купить камеру заднего вида универсальную по лучшим ценам!
Немає коментарів:
Дописати коментар