SEO оптимизация osCommerce | ВесьТоп создание и продвижение сайтов

Поддержка сайта

Высокие позиции в поисковой системе, на прямую зависят от развития вашего сайта.

Продвижение сайтов

Эффективность стратегий продвижения подтверждается сотрудничеством с крупными клиентами и отзывами о нашей работе.

Создание сайтов

Мы делаем сайты быстро, недорого и профессионально. От работы с нами, у вас останутся только положительные эмоции.

SEO оптимизация osCommerce

SEO оптимизация osCommerce

Эта статья про SEO оптимизацию интернет-магазина типа osCommerce.

Прежде всего, если вы сейчас выбираете программное обеспечение для интернет-магазина или уже выбрали, но еще не выпустили его онлайн, лучше выбрать что-то другое, чем osCommerce. Причин несколько: отсутствие стандартных возможностей SEO, серьезные дыры в безопасности, позволяющие скомпрометировать сайт, устаревшее видение и многое другое.

В этой статье предполагается, что вам нужно использовать osCommerce и у вас уже установлен osCommerce Online Merchant v2.2 RC2a в основном веб-каталоге стандартного хостинга с включенным mod_rewrite. На данный момент это последняя стабильная версия, но она также будет работать со старыми версиями программного обеспечения.

Перед внесением изменений советую сделать полную резервную копию всех файлов на сайте.

Первое, что вам нужно сделать, это сократить URL-адреса. Для этого есть готовые модули, но, к сожалению, они не работают с кириллическими адресами.

I. Человеческие URL-адреса в Интернете

Следующий код изменяет osCommerce таким образом, чтобы интернет-адреса категорий содержали названия категорий, а страницы продуктов содержали название продукта. Вы можете увидеть рабочий пример на этом сайте для органической косметики. Например, вместо использования адреса http://organic-bg.com/?cPath=2 для доступа ко второй категории адрес будет http://organic-bg.com/Probelna-koza-c2.

Смена происходит быстро, легко и безопасно. Это делается в 3 этапа:

1. Перенаправление.

Откройте файл .htaccess. Ищите строки вроде

RewriteEngine на RewriteBase /

Если у вас нет таких строк, добавьте их, а затем добавьте следующие строки:

RewriteRule [^ /] + — c ([0-9] +) / [^ /] + — s ([0-9] +) / [^ /] + — p ([0-9] +) /? /product_info.php?cPath=$1_$2& product_id = $ 3 [NC, L, QSA] RewriteRule [^ /] + — c ([0-9] +) / [^ /] + — p ([0-9] +) /? /product_info.php?cPath=$1& product_id = $ 2 [NC, L, QSA] RewriteRule [^ /] + — c ([0-9] +) / [^ /] + — s ([0-9] +) /? /? cPath = $ 1_ $ 2 [NC, L, QSA] RewriteRule [^ /] + — p ([0-9] +) /? /product_info.php?products_id=$1 [NC, L, QSA] RewriteRule [^ /] + — c ([0-9] +) /? $ /? cPath = $ 1 [NC, L, QSA]

Сохраните файл и откройте сайт в браузере. Если вы получаете ошибку 500 Internal Server Error, сначала проверьте права файла .htaccess на 755. Перезагрузите страницу, если ошибка не исчезнет, ​​возможно, на веб-сервере не включен mod_rewrite. Свяжитесь с вашим хостинг-провайдером, чтобы активировать этот модуль. Он обязан это сделать, потому что это стандартный вариант.

2. Функции.

Откройте файл includes / functions / html_output.php

В конце файла перед строкой? Gt; добавьте следующие две функции:

// ganbox.com: оптимизированные для SEO URL // Человеческие интернет-адреса function URL_rewrite ($ url) {global $ languages_id; $ соответствует = массив (); если (preg_match ("/ cPath = ([0-9] *) _? ([0-9] +)?)& products_id =)? ([0-9] +)? (. *)? /", $ url, $ соответствует)> 0 && preg_match ("/ действие = /", $ url) == 0) {// найти название категории if (isset ($ соответствует [1])) {$ cat_id = $ соответствует [1]; $ cat_query = tep_db_query ("выберите category_id, category_name из " . TABLE_CATEGORIES_DESCRIPTION. " где category_id = ‘" . (число) $ cat_id. "’и language_id =’" . (int) $ languages_id. "’limit 1"); $ cat_string = tep_db_fetch_array ($ cat_query); $ cat_string = URL_safe ($ cat_string [‘имя_категории’]); } // находим имя подкатегории if (isset ($ matches [2])) {$ subcat_id = $ matches [2]; $ cat_query = tep_db_query ("выберите категорию_id, имя_категории из " . TABLE_CATEGORIES_DESCRIPTION. " где category_id = ‘" . (число) $ subcat_id. "’и language_id =’" . (int) $ languages_id. "’limit 1"); $ subcat_string = tep_db_fetch_array ($ cat_query); $ subcat_string = URL_safe ($ subcat_string [‘имя_категории’]); } // находим название продукта if (isset ($ соответствует [4])) {$ prod_id = $ соответствует [4]; $ prod_query = tep_db_query ("выберите products_name, products_id из " . TABLE_PRODUCTS_DESCRIPTION. " где products_id = ‘" . (число) $ prod_id. "’и language_id =’" . (int) $ languages_id. "’limit 1"); $ prod_string = tep_db_fetch_array ($ prod_query); $ prod_string = URL_safe ($ prod_string [‘имя_продукта’]); } // дополнительные данные if (isset ($ соответствует [5])) {$ extras = $ соответствует [5]; // удаляет ненужные символы & $ extras = substr ($ extras, 1); }
// очищаем index.php из URL if (preg_match ("/(.*)index\.php/", $ url)> 0) {$ url = preg_replace"/index\.php.*/",, "", $ url); }
// очищаем product_info.php из URL if (preg_match ("/(.*)product_info\.php/", $ url)> 0) {$ url = preg_replace"/product_info\.php.*/",, "", $ url); }
// собираем новый URL if (isset ($ cat_string) && $ cat_string! = "") {$ url. = $ cat_string."-c". $ cat_id;
// добавляем строку для подкатегории if (isset ($ subcat_string) && $ subcat_string! = "") {$ url. = "/". $ subcat_string."-s". $ subcat_id; }
// добавляем название продукта if (isset ($ prod_string) && $ prod_string! = "") {$ url. = "/". $ prod_string."-п". $ prod_id; }
// добавляем дополнительные данные if (isset ($ extras) && $ extras! = "") {$ url. = "/?". $ extras; }}} else if (preg_match ("/products_id=(([0-9 ]+)(.*)?/", $ url, $ соответствует)> 0 && preg_match ("/ действие = /", $ url) == 0) {// найти название продукта if (isset ($ соответствует [1])) {$ prod_id = $ соответствует [1]; $ prod_query = tep_db_query ("выберите products_name, products_id из " . TABLE_PRODUCTS_DESCRIPTION. " где products_id = ‘" . (число) $ prod_id. "’и language_id =’" . (int) $ languages_id. "’limit 1"); $ prod_string = tep_db_fetch_array ($ prod_query); $ prod_string = URL_safe ($ prod_string [‘имя_продукта’]); } // дополнительные данные if (isset ($ соответствует [2])) {$ extras = $ соответствует [2]; // удаляет ненужные символы & $ extras = substr ($ extras, 1); }
// очищаем product_info.php из URL if (preg_match ("/(.*)product_info\.php/", $ url)> 0) {$ url = preg_replace"/product_info\.php.*/",, "", $ url); }
// собираем новый URL if (isset ($ prod_string) && $ prod_string! = "") {$ url. = $ prod_string."-п". $ prod_id; }
// добавляем дополнительные данные if (isset ($ extras) && $ extras! = "") {$ url. = "/?". $ extras; }} // иначе
вернуть $ url; }
// ganbox.com // Категории и названия продуктов очищены от недопустимых URL-адресов function URL_safe ($ str) {$ str = strtolower ($ str); $ str = preg_replace ("/]",,"-", $ str); return $ str; }

Сохраните и загрузите файл. Пока в вашем интернет-магазине ничего не изменится.

3. Активация

В том же файле / functions / html_output.php найдите функцию tep_href_link. В конце этой функции находятся строки:

return $ link; }

Перед этими двумя строками добавьте строку:

// ganbox.com: SEO-мод $ link = URL_rewrite ($ link);

Сохраните и загрузите файл. Теперь перезагрузите сайт, и все должно работать.

Если что-то пойдет не так, вы можете быстро остановить изменения, прокомментировав последнюю добавленную строку следующим образом:

// $ link = URL_rewrite ($ link);

Заб. Если ваш интернет-магазин находится в подкаталоге типа domain.com/shop, код будет немного другим. Свяжитесь со специалистом по SEO для получения дополнительной информации.

Заб. Написанный таким образом код работает со всеми языковыми версиями сайта.

Заб. Если при первом входе на сайт при наведении курсора мыши на ссылки в меню вы видите в конце интернет-адресов переменную, похожую на osCsid = a835b29ac42d801f56a3c75e1560bd6e, очень хорошая идея сделать следующее: войдите в панель администратора сайта и выберите Настройки / Сессии / «выберите True справа и нажмите кнопку [Обновить]. Таким же образом включите опцию «Предотвратить сеансы пауков».

II. Перенаправить старые URL

Перенаправляйте веб-адреса на страницы продуктов и страниц категорий.

Этот шаг можно пропустить, если ваш интернет-магазин совсем новый и еще не посещался роботами поисковых систем. Вы можете узнать, так ли это, выполнив поиск в Google по запросу site: domain.com, заменив domain.com адресом своего сайта. Если страницы продуктов уже проиндексированы, настоятельно рекомендуется сообщить поисковым системам, что вы изменили URL-адреса. Если вы этого не сделаете, вы рискуете быть наказанными за дублированный контент, потому что каждая страница будет доступна с двух разных адресов.

Один из способов сделать это — установить перенаправление 301 для каждой страницы в .htaccess. Если у вас мало продуктов, это не проблема и даже предпочтительнее. Но если у вас есть десятки и сотни товаров? Тогда надо проявить смекалку и придумать более ленивое решение ??????

Виртуальное перенаправление

Автоматически перенаправляет все старые адреса на новые описательные адреса. Например, при записи на адрес http://organic-bg.com/?cPath=2 он перенаправляется на адрес http://organic-bg.com/Probelna-kozha-c2. Переадресация имеет тип 301, что указывает ботам поисковых систем, что адрес был постоянно изменен, и это единственное правильное перенаправление.

Для того, чтобы этот взлом сработал, ему нужны обе функции из предыдущего шага.

Откройте файл includes / application_top.php

В конце файла перед строкой, содержащей? Gt; добавить код:

// ganbox.com: виртуальное постоянное перенаправление // перенаправляет старые адреса страниц товаров и категорий на новые адреса if (isset ($ _ GET [‘cPath’]) || isset ($ _ GET [‘products_id’])) { $ old_url = $ _SERVER [‘REQUEST_URI’]; $ new_url = URL_rewrite ($ old_url); if ($ new_url и $ new_url! = $ old_url) {$ new_url = preg_replace (‘# \? cPath = (0-9] *) _? (0-9] +)? #’, », $ new_url); заголовок ("HTTP / 1.1 301 перемещен навсегда"); заголовок ("Расположение: $ new_url"); Выход (); }}

Сохраните и загрузите файл. С этого момента бот или человек, который запомнил или добавил в закладки старый URL, будет перенаправлен на новый адрес. Хорошая аа? ??????

III. Мета-теги

Измените мета-теги: заголовок и описание страниц товаров.

Есть готовый модуль для изменения мета-тегов. Он называется Header Tags SEO и позволяет изменять метатеги на странице из административной панели магазина. Проблема в том, что установка довольно сложна, потому что меняет базу данных и множество файлов.

Мое решение проблемы гораздо проще установить и относительно легко поддерживать.

Как это устроено?

Тег title и метатег description автоматически заполняются заголовком продукта, взятым из базы данных. Каталог meta, расположенный в основном веб-каталоге, содержит текстовые файлы с описанием продуктов. Для каждого продукта вы можете создать файл с расширением .txt, написав описание тега description в первой строке, текст тега title во второй строке и ключевые слова в третьей строке. Файл продукта начинается с буквы p и содержит номер продукта. Например, p74.txt — это имя файла описания продукта под номером 74. Лучше всего, что файлы описания не являются обязательными.

SEO мета-теги

Откройте файл product_info.php

Заменить строку
с линиями

После заказа

требуется (‘включает / application_top.php’);

добавить код:

// ganbox.com: метатеги SEO $ meta_title = TITLE; // значение по умолчанию $ meta_desc = $ meta_keys = »; $ prod_id = isset ($ HTTP_GET_VARS [‘product_id’])? (число) $ HTTP_GET_VARS [‘product_id’]: 0; если ($ prod_id > 0) {// найти название продукта $ prod_query = tep_db_query ("выберите products_name, products_id из " . TABLE_PRODUCTS_DESCRIPTION. " где products_id = ‘" . (число) $ prod_id. "’и language_id =’" . (int) $ languages_id. "’limit 1"); $ prod_string = tep_db_fetch_array ($ prod_query); $ prod_string = URL_safe ($ prod_string [‘имя_продукта’]); $ meta_title = mb_substr ($ prod_string, 0.90); $ meta_desc = $ prod_string; } $ desc_file = $ _SERVER [‘DOCUMENT_ROOT’]. DIR_WS_CATALOG .’meta / p ‘. $ Prod_id.’. Txt ‘; если (существует_файл ($ desc_file)) {$ aLines = файл ($ desc_file); если (! empty ($ aLines [0])) $ meta_desc = mb_substr (trim ($ aLines [0]), 0,900); // описание if (! empty ($ aLines [1])) $ meta_title = mb_substr (trim ($ aLines [1]), 0.90); // заголовок if (! empty ($ aLines [2])) $ meta_keys = mb_substr (trim ($ aLines [2]), 0,900); // ключевые слова}

Теперь все, что вам нужно сделать, это создать мета-каталог, загрузить его в основной веб-каталог и для каждого продукта, который вы хотите загрузить, соответствующий файл описания. Продукты, у которых нет файла описания, будут использовать заголовок, введенный при добавлении продукта.

Заб. Если вы получаете сообщение об ошибке из-за функции mb_substr (), это означает, что ваш хостинг не поддерживает библиотеку mb_string (где вы нашли такой вымышленный хостинг, люди?). Свяжитесь с вашим хостинг-провайдером и запросите поддержку mb_string. Другой вариант — заменить все функции mb_substr на substr.

Все, что описано до сих пор, — это лишь очень небольшая, но важная часть SEO для osCommerce. Это что-то вроде подготовки к SEO-оптимизации. Без этих изменений у вашего сайта не будет хороших шансов на высокий рейтинг. Если вы не можете справиться с этими изменениями или вам нужны профессиональные услуги SEO, вы можете связаться со мной со страницы контактов.

Читайте так же:
Not found

Нам доверяют

Интернет магазин