Opencart, удалить строку категории из канонического URL продукта - PullRequest
2 голосов
/ 12 октября 2011

В Magento есть поле для галочки - если вы хотите или не хотите иметь категорию в ссылке продукта.

В Opencart такого мнения нет.Что есть в Opencart - это файл, который управляет SEO-интерпретацией ссылок.

Если вы добавите «/» перед ссылкой в ​​этом файле (профессионалы, которые с ней работали, знают об этом)это сделает ссылку абсолютной, а не относительной, и продукт появится в начале корня веб-сайта.

Меня беспокоит, что в какой-то момент это сломается, и я ищу решение, которое можноприменяется на коммерческой платформе 20 000+ продуктов, где отказы могут принести реальный ущерб.

Файлы, о которых я говорил, это:

1.4.x: /catalog/model/tool/seo_url.php        
1.5.x: /catalog/controller/common/seo_url.php

Изменение, которое, как я уже знаю, вам нужно сделать, это:

$url .= '/' . $query->row['keyword']; 

заменить на:

$url = '/' . $query->row['keyword']; 

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

SEO является обязательным, любой совет / плагин SEO, примененный к Opencart, будет более чем приветствоваться.Я постоянно изучаю рынок сопутствующего программного обеспечения, я готов изменить CMS (что потребует нескольких часов разработки), если я смогу найти более качественные решения.

В настоящее время я имею дело с Magento, которыйНЕ гибкие, каждое изменение сводит нас с ума - мы ищем что-то ню, глючное и над которым трудно работать.

Ответы [ 3 ]

1 голос
/ 13 октября 2011

С какой версией OpenCart вы работаете? Последний?

Стандартная структура MVC OpenCart в сочетании с собственным PHP-кодированием делает его чрезвычайно гибким решением CMS (на самом деле я использую ядро ​​для многочисленных типов сайтов).

OpenCart в настоящее время зависит от двух файлов, которые вы упомянули вместе с таблицей SEO в базе данных для обработки переписываний.

Это не «ломает» панировочные сухари. Хлебные крошки - больше помощь истории / навигации. С помощью URL-адресов SEO, если вы вводите URL конкретного продукта, вы сразу переходите к определенному элементу. Так что в иерархии это будет только один уровень ниже домашней страницы ..
например yoursite.com/seoproduct

'home' -> 'seo product'

Если вы используете навигационную иерархию, она по-прежнему отображается правильно (без упомянутого вами мода) 'home' -> 'категория ->' подкатегория '->' seo product '

Тем не менее, теоретически легко достичь того, что вы хотите, с помощью URL-адресов SEO. Достаточно простой модификации двух файлов.


На практике все зависит от того, как вы хотите с ними справиться ...

Как вы собираетесь обращаться с указанием SEO-адреса для продукта? На основании названия продукта? Модель продукта? Или вы собираетесь использовать нативное поле SEO в информации о продукте?

Если это последнее, корзина автоматически обработает перезапись. К сожалению, если позволить корзине обрабатывать ее изначально, это также несет в себе наибольший риск разрыва ссылок со временем по мере внесения изменений.

Если это один из первых вариантов, вам нужно будет внести некоторые изменения в способ обработки переписывания SEO.


Как только вы определите, как вы собираетесь обрабатывать переписывание, вы можете запустить его в действие ...

Самой простой модификацией было бы использование нативного SEO, но затем добавление избыточного резервного поиска. Если на контроллере common / seo не найдено никаких результатов, попросите его выполнить поиск. Если найден один, отобразите продукт - если найдено более одного, отобразите результаты ..

С другой стороны, вы можете полностью изменить оба файла и перейти к пользовательской обработке SEO. (снова используя поиск, чтобы найти продукт) ...

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

0 голосов
/ 23 октября 2011

Я принял решение:

  • Не задавать строку в поле SEO каждой категории
    • Это не добавит название категории перед продуктом

Это означает, что вместо / category / product у меня будет / product

Как сказал CarpeNoctumDC, я мог бы изменить файлы PHP, чтобы категория могла иметьбыл удален автоматически, но я вижу следующие недостатки:

  1. Вам необходимо обновлять основные файлы PHP при каждом обновлении
  2. Не могу подтвердить, что есть места, где вас оборачиваютТак как это не часть темы, а часть ядра opencart

Хорошая новость заключается в том, что нет необходимости указывать строку бренда / производителя перед названием продукта (как многим из нас, вероятно, нужно) потому что мы можем использовать функцию производителя для этого.

Таким образом, категория / подкатегория может быть не релевантным SEO-текстом (что в моем случае таковым является), ссылка на продукт законно устанавливается opencart для/ {link}, которая полностью оптимизирована для SEO, и если мне нужно представление ссылки с производителем, мне нужно только установить SEO-ссылку на самого производителя.Это сгенерирует / {изготовитель} / {link_of_the_product}, который сверху имеет внутри заголовка каноническую ссылку, указывающую на / {link_of_the_product} - таким образом, Google не будет разочарован.

Поскольку в этот самый момент я 'я делаю экспорт / импорт из старого Magento 1.6, который оказался болезненным для opencart, настроенного как упомянуто выше.

Мы прошли Google Panda - нет плохой истории в домене, нет дублированного контента, так чтодалеко (~ 10 тыс. продуктов) - посмотрим, как все изменится после этого крупного обновления.

Если Google не согласен с этим конфигом, я опубликую предупреждения на эту тему.

Богдан

0 голосов
/ 13 октября 2011

В голове есть канонический тег (по крайней мере, в версии 1.5.0), и в моем тестировании это не изменилось, независимо от того, был ли доступ к странице через http://example.com/category1/product-123 или http://example.com/product-123.

<link href="http://example.com/product-123" rel="canonical" />

Я бы порекомендовал посмотреть Как я могу создавать настраиваемые SEO-ориентированные URL в OpenCart? для других ваших страниц (информация, корзина, оформление заказа и т. Д.).

...