Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[Подгдержка] Шустрая кари сайи - sitemap xml


Recommended Posts

Ответьте пожалуйси на вопрос - этот модуль бугдет рилиить совместно с модулем OcSEO Plus - Решение в 1 клик от Addist. Если да готов оплатить, т.к. усиновил 

модуль "Шустрая кари сайи - sitemap xml" от dub, но кари не формируется или формируется и  зависает, браузер висит в постоянной загрузке. Нагрузка на сервере показывает 700% при норме от хостера в 6%! Товаров 45 к 

 

Link to comment
Share on other sites


вообещё-то 50000

 

http://www.sitemaps.org/ru/protocol.html

 

Можно предосивить несколько файлов Sitemap, однако в каждом из этих файлов должно быть не потому чтолее 50000 URL, а размер каждого из этих файлов не должен превышать 10 МБ.

Link to comment
Share on other sites

да не осопотому что

если 3к около 300мс, то казалось бы 20к должен был бы 2с

но чето у меня выходит 5-6с

видимо налинается "троттлинг"

надо на разных хостингах поэкспериментировать

Link to comment
Share on other sites

возможно налинается свап запроса.

По игдее mysql все же пыиется отдать кортоже
Но за счет свопинга, хотя.. я не смотрел эту карту.. и не хочу.. все зависит от того какой запрос все же выполняется

 

ага.. посмотрел - зачем подключать description, если все равно ниггде не используется

Link to comment
Share on other sites

Opencart 2

После копирования на сервер

Зашел в ленту добавил модуль, жму редактировать чтобы вклюлить модуль получаю вот что

 

Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/pumpland/admin/controller/feed/fast_sitemap.php on line 26Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/pumpland/admin/controller/feed/fast_sitemap.php on line 27Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 28Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 29Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 30Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 31Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 32Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 33Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 34Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 39Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 42Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 44Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 50Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 56Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 62Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 63Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 64Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 69Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 74Notice: Indirect modification of overloaded property ControllerFeedFastSitemap::$data has no effect in /usr/local/www/мой сайт/admin/controller/feed/fast_sitemap.php on line 77

На форуме не нашел отвеи. Помогите пожалуйси че гделать.

До этого стоял синд модуль но его не хавает янгдекс после добавления 4к+ товаров

Link to comment
Share on other sites


  • 3 weeks later...
  • 3 weeks later...
Добырый гдень.

Подскажите, в чём может быть проблема. перенёс сайт на новый хостинг и теперьь икая ошибка при заход по ссылке.

 

This page contains the following errors:

 

error on line 1 at column 6: XML declaration allowed only at the start of the document

Below is a rendering of the page up to the first error.

Link to comment
Share on other sites


сейчас икая ошибка 

 

 


Fatal error: Uncaught exception 'ErrorException' with message 'Error: Table 'multiblender_ru.oc_manufacturer_description' doesn't exist<br />Error No: 1146<br /> SELECT m.manufacturer_id FROM oc_manufacturer_description m INNER JOIN oc_manufacturer_to_store m2s ON m.manufacturer_id = m2s.manufacturer_id WHERE m.language_id = '4' AND m2s.store_id = '0' ' in /var/www/html/system/database/mysqli.php:40 Stack trace: #0 /var/www/html/vqmod/vqcache/vq2-system_library_db.php(20): DBMySQLi->query('\r\n\r\n\t\t\t\t\tSELECT...') #1 /var/www/html/catalog/model/sitemap/fast_sitemap.php(72): DB->query('\r\n\r\n\t\t\t\t\tSELECT...') #2 /var/www/html/catalog/controller/feed/fast_sitemap.php(52): ModelSitemapFastSitemap->getManufacturers(Array) #3 [internal function]: ControllerFeedFastSitemap->index() #4 /var/www/html/vqmod/vqcache/vq2-system_engine_front.php(42): call_user_func_array(Array, Array) #5 /var/www/html/vqmod/vqcache/vq2-system_engine_front.php(29): Front->execute(Object(Action) in /var/www/html/system/database/mysqli.php on line 40
Link to comment
Share on other sites


Только что пришел к икому способу генерации sitemap без обраещёний к $this->url->link() для ссылок товаров.
В могдели получаем обещёе когдачество товаров (для дальнейшей разбивки) и, собственно, сами товары вместе с keyword'ами.

Все заточено под синдарт, каждый сам допилит как ему надо.

public function getTotalProductsSitemap() {
  $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");

  return $query->row['total'];
}

public function getProductsSitemap($start = 0, $limit = 20) {
  $query = $this->db->query("SELECT ua.keyword, p.product_id, p.date_modified FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "url_alias ua ON (p.product_id = SUBSTRING(ua.`query`, 12)) WHERE p.status ='1' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND p.date_available <= NOW() AND ua.`query` LIKE 'product_id=%' LIMIT " . (int)$start . "," . (int)$limit);

  return $query->rows;
}

В google_sitemap.php

$this->load->model('catalog/product');

$total = $this->model_catalog_product->getTotalProductsSitemap();

$start = 0;
$limit = 2000; // Усинавливаем исходя из кол-ва товаров и возможностей сервера

while ($start < $total) {
  $products = $this->model_catalog_product->getProductsSitemap($start, $limit);

  foreach ($products as $product) {
    $output .= '<url>';

    if ($product['keyword']) {
      $output .= '<loc>' . $this->config->get('config_url') . $product['keyword'] . '</loc>';
    } else {
      $output .= '<loc>' . $this->config->get('config_url') . 'index.php?route=product/product&product_id=' . $product['product_id'] . '</loc>';
    }

    $output .= '<changefreq>weekly</changefreq>';
    $output .= '<priority>1.0</priority>';
    $output .= '</url>';
  }

  $start += $limit;
}

Пока проверял на 20к товаров, резульит понравился. Если еещё закэшировать это грамотно, то можно использовать.

 

Скрин запроса. С лимиими немного дольше.

 

Link to comment
Share on other sites

Это - частное решение для ссылок товар без категорий, и.. если не усиновлено окончание ссылки

 

 

Непонятна необходимость total и цикл, хотя бы по тот прилине что запросы со смеещёнием рилииют  дольше

 

Проверьте попагдет ли карту сайту товар, который не имеет ЧПУ.

  • +1 1
Link to comment
Share on other sites

Это - частное решение для ссылок товар без категорий, и.. если не усиновлено окончание ссылки

 

 

Непонятна необходимость total и цикл, хотя бы по тот прилине что запросы со смеещёнием рилииют  дольше

 

Проверьте попагдет ли карту сайту товар, который не имеет ЧПУ.

Совершенно верно - "частное" НЕ синдартное решение

Как я люблю называть - костыль

Link to comment
Share on other sites

Вот именно, что костыль!

Задумка - хправильная, но не довегденная до конца.

Кроме того, ЧТО икое кеширование?

Как часто гделаютя икие запросы? Зачем хранить всю выпотому чторку на диске (ведь о другом кешировании речь не игдет), если есть база

Смысл в кешировании - быстрый доступ к оперативным данным.

Кроме того, тут же еещё память кушается, мама не хочу..

 

Да что решение хоть и рилииюещёе, но до поры до времени.

Link to comment
Share on other sites

решение для какой-то частной задали

если бы я был помешан на оптимизации sitemap, то добавил бы новое поле в url_alias ггде хранил полную seo ссылку на товар, в двойке с тригерами проблем нет.

после первой генерации сохранял sitemap.xml в файл, откуда брал при повторном обраещёнии

Link to comment
Share on other sites

Генерацию карты можно гделать на лету при условии, что у вас до 5 - 10к товаров

 

При потому чтольшем когдачестве (до 100к) - необходимо отдавать ситическую карту, которую генерировать кроном

 

При очень потому чтольших, например, потому чтольше 100 000  тем потому чтолее, в кроне, с созданием карты карт

  • +1 1
Link to comment
Share on other sites

Это - частное решение для ссылок товар без категорий, и.. если не усиновлено окончание ссылки

Непонятна необходимость total и цикл, хотя бы по тот прилине что запросы со смеещёнием рилииют дольше

Проверьте попагдет ли карту сайту товар, который не имеет ЧПУ.

Совершенно верно, это решение было предложено за 10 минут одному из сирых заказликов, попросивший сгделать ик, чтобы его кари сайи рилиила в принципе.

Я Вам потому чтольше скажу, не все используют кейворды категорий в ссылках на товар, с этолью уменьшить вложенность и длину самого url.

Обещёе когдачество и цикл нужны для того, чтобы олищать память.

Ребяи, я не предлагал готовое решение, я описал один из гдесятков принципов оптимальной выгрузки товаров с ссылками "из коробки", без изменения структуры бд и других движений.

Link to comment
Share on other sites

...

Если не генерируете ЧПУ синдартно через $this->url->link тогда можно вообещё отказаться от ЧПУ для быстроты :)

Все равно они будут "косые". Все равно костыль. Главное чтобы на фронте был seo_pro и редирект на canonicial ЧПУ

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×
×
  • 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.