Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Yesvik

Ветеран сообщества
  
  • Posts

    1,939
  • Joined

  • Last visited

Everything posted by Yesvik

  1. Но это всё цветочки... ягодки начинаются когда включаете отображение категорий в левой колонке Главная страница с включенными категориями и SEO (349 запросов) А это страница категории desktops без SEO (238 запросов) Cтраница категории desktops c SEO (410 запросов)
  2. Сильно удивился по поводу 25 запросов... поставил с нуля OpenCart 1.5.1.3.1 Главная страница SEO выкл. - 105 запросов SEO вкл. - 176 запросов
  3. Почти про все "зубчики" расчески писалось на форуме по несколько раз.25 запросов на главной странице - не верю. На выходных выложу в инете демки с выводом списка запросов "до" и "после"...
  4. В ocStore чуть чуть лучше, но не так хорошо как можно было-бы сделать.Если внести все правки опять начнутся визги что надо только переводить...
  5. С чего ты решил что проблема в этом коде?
  6. Среднее количество запросов - понятие не определённое и зависит от многих факторов.Могу сказать что запросов безобразно много из-за кучи рекурсивных функций и просто кривых алгоритмов... но это лечится. Из последнего... OpenCart 1.5.0.5 без каких либо изменений, только загружены товары и включено ЧПУ 375 категорий (26 узлов, 3 уровня, 11 категорий первого уровня) 3871 товаров Красным указаны значения поле причесывания... Главная страница Пик использования памяти: 4.7 Mb / 2.5 Mb Время генерации страницы: 3.56 sec / 0.18 сек Уникальных запросов: 962 / 49 Всего запросов: 1660 / 49 Категория Пик использования памяти: 4.8 Mb / 3.6 Mb Время генерации страницы: 3.60 сек / 0.31 сек Уникальных запросов: 936 / 63 Всего запросов: 1715 / 63 Товар Что было изначально не сохранил, но запросов было за 1000 и время генерации порядка 3 секунд После причесывания Пик использования памяти: 2.8 Mb Время генерации страницы: 0.10 сек Уникальных запросов: 35 Всего запросов: 37 Без ЧПУ на главной 25 запросов, категория - 39, товар - 20 На главной без ЧПУ было так: Пик использования памяти: 3.8 Mb Время генерации страницы: 2.61 сек Уникальных запросов: 678 Всего запросов: 1083
  7. filter_var() это замена часто используемых регулярок и реализовать эти функции не сложно без установки каких либо расширений, но лучше обновиться.
  8. Для 0.2.2 Конфиг в папке админки <?php define('DOMAIN', 'domain.tld'); // указать свой домен без http:// и слеша в конце define('DIR_ROOT', str_replace('\\', '/', realpath('..')) . '/'); define('DIR_ACP', basename(dirname(__FILE__)) . '/'); // HTTP define('HTTP_CATALOG', 'http://' . DOMAIN . '/'); define('HTTP_SERVER', 'http://' . DOMAIN . '/' . DIR_ACP); define('HTTP_IMAGE', 'http://' . DOMAIN . '/image/'); // HTTPS define('HTTPS_SERVER', 'http://' . DOMAIN . '/' . DIR_ACP); define('HTTPS_IMAGE', 'http://' . DOMAIN . '/image/'); // DIR define('DIR_APPLICATION', DIR_ROOT . DIR_ACP); define('DIR_LANGUAGE', DIR_APPLICATION . 'language/'); define('DIR_TEMPLATE', DIR_APPLICATION . 'view/template/'); define('DIR_CATALOG', DIR_ROOT . 'catalog/'); define('DIR_DOWNLOAD', DIR_ROOT . 'download/'); define('DIR_IMAGE', DIR_ROOT . 'image/'); define('DIR_SYSTEM', DIR_ROOT . 'system/'); define('DIR_DATABASE', DIR_ROOT . 'system/database/'); define('DIR_CONFIG', DIR_ROOT . 'system/config/'); define('DIR_CACHE', DIR_ROOT . 'system/cache/'); define('DIR_LOGS', DIR_ROOT . 'system/logs/'); // DB require(DIR_ROOT . 'dbconfig.php'); Конфиг в корне сайта <?php define('DIR_ROOT', str_replace('\\', '/', realpath('.')) . '/'); // DIR define('DIR_APPLICATION', DIR_ROOT . 'catalog/'); define('DIR_LANGUAGE', DIR_ROOT . 'catalog/language/'); define('DIR_TEMPLATE', DIR_ROOT . 'catalog/view/theme/'); define('DIR_DOWNLOAD', DIR_ROOT . 'download/'); define('DIR_IMAGE', DIR_ROOT . 'image/'); define('DIR_SYSTEM', DIR_ROOT . 'system/'); define('DIR_DATABASE', DIR_ROOT . 'system/database/'); define('DIR_CONFIG', DIR_ROOT . 'system/config/'); define('DIR_CACHE', DIR_ROOT . 'system/cache/'); define('DIR_LOGS', DIR_ROOT . 'system/logs/'); // DB require(DIR_ROOT . 'dbconfig.php'); В корне сайта создай файл dbconfig.php <?php // DB этот блок взять из родного конфига и не изменять define('DB_DRIVER', 'mysql'); define('DB_HOSTNAME', 'localhost'); define('DB_USERNAME', 'username'); define('DB_PASSWORD', 'password'); define('DB_DATABASE', 'database'); define('DB_PREFIX', 'oc_');
  9. Конфиги с которыми можеш менять админку как угодно... изменения будут подхватываться автоматом Конфиг в папке админки <?php define('DOMAIN', 'domain.tld'); // указать свой домен без http:// и слеша в конце define('DIR_ROOT', str_replace('\\', '/', realpath('..')) . '/'); define('DIR_ACP', basename(dirname(__FILE__)) . '/'); // HTTP define('HTTP_CATALOG', 'http://' . DOMAIN . '/'); define('HTTP_SERVER', 'http://' . DOMAIN . '/' . DIR_ACP); define('HTTP_IMAGE', 'http://' . DOMAIN . '/image/'); // HTTPS define('HTTPS_SERVER', 'http://' . DOMAIN . '/' . DIR_ACP); define('HTTPS_IMAGE', 'http://' . DOMAIN . '/image/'); // DIR define('DIR_APPLICATION', DIR_ROOT . DIR_ACP); define('DIR_LANGUAGE', DIR_APPLICATION . 'language/'); define('DIR_TEMPLATE', DIR_APPLICATION . 'view/template/'); define('DIR_CATALOG', DIR_ROOT . 'catalog/'); define('DIR_DOWNLOAD', DIR_ROOT . 'download/'); define('DIR_IMAGE', DIR_ROOT . 'image/'); define('DIR_SYSTEM', DIR_ROOT . 'system/'); define('DIR_DATABASE', DIR_ROOT . 'system/database/'); define('DIR_CACHE', DIR_ROOT . 'system/cache/'); define('DIR_CONFIG', DIR_ROOT . 'system/config/'); define('DIR_LOGS', DIR_ROOT . 'system/logs/'); // DB require(DIR_ROOT . 'dbconfig.php'); Конфиг в корне сайта <?php define('DOMAIN', 'domain.tld'); // указать свой домен без http:// и слеша в конце define('DIR_ROOT', str_replace('\\', '/', realpath('.')) . '/'); // HTTP define('HTTP_SERVER', 'http://' . DOMAIN . '/'); define('HTTP_IMAGE', 'http://' . DOMAIN . '/image/'); // HTTPS define('HTTPS_SERVER', 'http://' . DOMAIN . '/'); define('HTTPS_IMAGE', 'http://' . DOMAIN . '/image/'); // DIR define('DIR_APPLICATION', DIR_ROOT . 'catalog/'); define('DIR_LANGUAGE', DIR_ROOT . 'catalog/language/'); define('DIR_TEMPLATE', DIR_ROOT . 'catalog/view/theme/'); define('DIR_DOWNLOAD', DIR_ROOT . 'download/'); define('DIR_IMAGE', DIR_ROOT . 'image/'); define('DIR_SYSTEM', DIR_ROOT . 'system/'); define('DIR_CACHE', DIR_ROOT . 'system/cache/'); define('DIR_CONFIG', DIR_ROOT . 'system/config/'); define('DIR_DATABASE', DIR_ROOT . 'system/database/'); define('DIR_LOGS', DIR_ROOT . 'system/logs/'); // DB require(DIR_ROOT . 'dbconfig.php'); В корне сайта создай файл dbconfig.php <?php // DB этот блок взять из родного конфига и не изменять define('DB_DRIVER', 'mysql'); define('DB_HOSTNAME', 'localhost'); define('DB_USERNAME', 'username'); define('DB_PASSWORD', 'password'); define('DB_DATABASE', 'database'); define('DB_PREFIX', 'oc_');
  10. Функция filter_var() появилась в PHP 5.2.0, вероятно у тебя версия PHP младше
  11. С технической точки зрения, если нормально настроен сервер - по барабану. Я стараюсь придерживаться такой логике: В интернете по разным адресам расположен различный контент... Для подсказки какой контент нас ожидает по какой либо ссылке используются расширения файлов. Если указано .avi то ожидаем видео, если .pdf то ожидаем PDF, если видим .html - ожидаем HTML документ. Я не вижу ничего плохого в том что ссылка содержит подсказку какого типа контент мы можем ожидать по ссылке. Слеш обычно означает указание на директорию... В зависимости от настроек сервера по разному может отображаться содержимое директории. Обычно настройки серверов запрещают просмотр директорий и указывается список файлов которые отвечают за представление содержимого директории. Применительно к интернет магазину, я рассматриваю страницы товаров как файлы, а категории как директории с файлами страниц товаров. Поэтому ссылки на страницы со списками товаров, производителей, информационных документов стараюсь делать со слешем на конце, а страницы товаров, производителей, информационные страницы - рассматриваю как файлы в HTML формате и поэтому у них должны быть окончания .html Я не отрицаю других подходов... например везде указывать слеш. Это как-бы говорит что каждый файл лежит в отдельной директории и при обращении к этой директории отображается заданный по умолчанию файл. Когда окончания нет - это вообще неопределённость... не понятно то ли это документ, то ли это директория... или вообще ошибка и не хватает части URL. Есть мнение что из-за окончаний ссылка может не поместиться в твитере... Но подобный бред я даже обсуждать не хочу... по крайней мере применительно к интернет магазинам.
  12. На странице товара SKU можно вывести используя переменную $product_info['sku'] Вот так: <?php echo $product_info['sku']; ?> В модуле Последние поступления SKU не доступна и надо сделать передачу значения SKU во вьювер В контроллере, там где формируется массив с товарами есть код $this->data['products'][] = array( 'product_id' => $result['product_id'], 'name' => $result['name'], 'model' => $result['model'], 'rating' => $rating, 'stars' => sprintf($this->language->get('text_stars'), $rating), 'price' => $price, 'options' => $options, 'special' => $special, 'image' => $this->model_tool_image->resize($image, 38, 38), 'thumb' => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')), 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&product_id=' . $result['product_id']), 'add' => $add ); вот тут и надо добавить SKU, например вот так: $this->data['products'][] = array( 'product_id' => $result['product_id'], 'name' => $result['name'], 'model' => $result['model'], 'sku' => $result['sku'], 'rating' => $rating, 'stars' => sprintf($this->language->get('text_stars'), $rating), 'price' => $price, 'options' => $options, 'special' => $special, 'image' => $this->model_tool_image->resize($image, 38, 38), 'thumb' => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')), 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&product_id=' . $result['product_id']), 'add' => $add ); После этого во вьювере можно вывести SKU вот так: <?php echo $product['sku']; ?> В других списках товаров - аналогично...
  13. Если SEO не включать - дубли будут обязательно. Если включать - то зависит от того какое SEO используется.Перейди на страницу товара по ссылке с главной страницы магазина, а потом перейди по ссылке на тот-же товар из категории. Если при этом формируются разные ссылки - это и есть дубли. Вот примеры http://demo.opencart.com/index.php?route=product/product&product_id=41 и http://demo.opencart.com/index.php?route=product/product&path=20_27&product_id=41
  14. Я не нашел тему в которой выкладывал, немного освобожусь - отрехтую ещё раз. Но тебе надо понимать что проблема с сайтмэп - это следствие тяжелых алгоритмов и начинать надо с них... Вот беглый разбор полётов... Как видиш модуль во-первых двоит вывод ссылок на страницы товаров скармливая поисковикам дубли.. во вторых рекурсивные алгоритмы на больших объёмах поставят на колени практически любой сервак и тут не спасёт даже кеширование потому что большое количество файлов в кеше приводит к тормозам файловой системы... Короче... на больших объёмах надо смотреть конкретную реализацию магазина и причесывать с учетом поставленной задачи. Невозможно рассказать о всех проблемных местах, да я наверно о всех и не знаю... В разных магазинах - разные приключения встречаются. Даже если используется типовая сборка без каких либо правок - многое зависит от конфигурации... Пару дней назад правил магазин... Главная страница - 1660 SQL-запросов, время генерации 3,5 сек.... после обработки напильником запросов осталось меньше 50, время генерации - 0,16-0,18 сек. Тэги и поиск - время генерации страницы 12-13 сек. ... после причесывания - 0,2-0,3 сек. А человек не верил что это можно побороть... Тоже говорил что чистый Opencart... куда-же мы денем эти запросы... они же нужны...
  15. Зачем удалять ссылки если есть редиректы? Я же написал в 9 посте...
  16. Не... дело не в htaccess... Ты в robots.txt закрыл доступ по ссылкам которые заглотили поисковики... Например страницы товаров раньше были /index.php?route=product.... а в robots.txt написано Disallow: /index.php?route=product* Попробуй зайти по старой ссылке и ты увидиш что тебя переадресует на ЧПУ Убери этот запрет... поисковик прийдёт по старой ссылке, получит переадресацию со статусом 301 и постепенно заменит старые ссылки на новые без существенных потерь в позициях. Часть запретов, которые у тебя прописаны, хороши для нового сайта. А когда меняеш ссылки эти запреты только мешают. Оставь запреты только на те разделы сайта к которым поисковик не должен иметь доступ ни по старым, ни по новым ссылкам.
  17. Ну ошибки как раз и говорят о том что безобразно высокая нагрузка... то сервак ложится, то выполняется слишком долго... Если генериш сайтмэп и на сайте никого - то всё получается, а если при этом на сайт ещё кто-то заходит, например, поисковый паук - сервак умирает. У тебя надо не просто генератор рехтовать, а оптимизировать большинство алгоритмов... у тебя-же сайт тупит не по детски.
  18. Если речь идёт о статусе 404, а не о надписи 404 - то разницы никакой нет.У OpenCart есть такой маразм... на запрос к несуществующему товару отвечать страницей с надписью что такого товара нет и статусом 200... в ocStore этот маразм исправлен
  19. Я подозреваю что ты не правильно трактуеш слово индесация... Посещение поисковым роботом страницы и включение страницы в индекс это разные вещи. Попробую объяснить разницу между между этими понятиями на примере метатега robots. index,follow - поисковикам разрешено включать эту страницу в индекс и разрешено переходить по ссылкам найденным на этой странице noindex,nofollow - поисковикам запрещено включать эту страницу в индекс и запрещено переходить по ссылкам найденным на этой странице noindex,follow - поисковикам запрещено включать эту страницу в индекс, но разрешено переходить по ссылкам найденным на этой странице. Обрати внимание на последнюю комбинацию... Поисковики по странице будут шариться, будут переходить по ссылкам с этой страницы, но в индекс эту страницу не включат и в поисковой выдаче ты эту страницу не увидиш. Но это в идеале, а в жизни бывает иначе... Все эти "запрещено" и "разрешено" только звучат грозно... на самом деле это рекомендации, а не директивы. Запись Disallow: /*?page предписывает поисковым паукам не включать в индекс страницы у которых в URL присутствует page, но не запрещает посещать эти страницы. Эта запись не гарантирует что поисковики не будут посещать эти страницы и даже не гарантирует что эти страницы не будут включены в индекс. Если поисковик где-то найдёт ссылку на страницу с page то может включить её в индекс не взирая на то что написано в robots. Disallow: /*?page к страницам товаров имеет только косвенное отношение... т.е. если на товары есть сылки только на этих страницах и больше нигде ссылок нет и не было - то шансы этих товаров попасть в индекс снижаются. Если на страницы товаров есть ссылки в сайтмэп, или есть ссылки с других страниц - то запись Disallow: /*?page ни как не мешает поисковикам посещать страницы товаров и включать их в индекс.
  20. В SEO оттуда всё сделано для аккуратного перехода на ЧПУ и обратно. Поставил и больше ничего не трогай... всё произойдёт само.
  21. Ни какого гемороя... На сайте прикручен новый SEO URL для устранения дублей, но кроме устранения дублей этот SEO URL и редиректы делает со статусом 301.
  22. Я пользую старый, добрый Zend Studio 5 Из дебагеров в основном использую ZendDebugger, иногда подключаю xDebug (в основном для трассировки и профилирования)
  23. Во первых есть сайтмэп в котором присутствуют ссылки на все товары Во вторых когда добавляются товары они отображаются в новинках В третьих есть кроссселинг, рекомендуемые и т.д. Так что у поисковика есть куча возможностей проиндексировать страницы товаров. По поводу генератора сайтмэп - его надо немного причесать что-бы он не тупил... Для ocStore 0.2.х я уже выкладывал подрехтованный сайтмэп, а какая версия у тебя?
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.