Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

Привет всем!
 
В крадце про мой магазин:
 
движок Версия ocStore 2.1.0.2.1
 
хостинг Jino
 
Теперь по делу, в магазин загружено 6500 товаров. Включил модуль встроенный в дрыготель Google Sitemap.
Но при обращении к нему по ссылке /sitemap.xml или /index.php?route=feed/google_sitemap он кладет весь магазин на пару минут! 
Затем одупляется и дает ошибку Фатальная ошибка : Максимальное время выполнения 30 секунд превышен в /domains/..............system/library/image.php на линии 118

Начитавшись дельных советов типа: 

 

 

 

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

 

Я ванговал над ним часа полтора))) но так проблема и не решилась! 

 

Для себя представляю проблему так!

Либо это не справляется встроенный модуль и нужно покупать кашерный, либо лыжи не едут!

 

Други прошу помощи, и за раннее благодарю! 

Надіслати
Поділитися на інших сайтах


Надо покупать профессиональное решение

Стандартный не справляется с таким количеством товаров

Надіслати
Поділитися на інших сайтах

Стандартный модуль sitemap в ОК - это полный идиотизм. Автор в кой то веке решил вспомнить о существовании DRY (который намеренно игнорирует везде в ОК) и поленился сделать отдельную модель, потому модуль использует меганагруженные запросы из чужих моделей (прежде всего речь о модели товара).

 

А в ОК 2 добавилась новая беда - в сайтмап начала добавляться ссылка на изображение товара, так что нагрузка стала ещё больше.

 

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

 

В файле /catalog/controller/feed/google_sitemap.php привести вот этот кусок кода:

foreach ($products as $product) {
                if ($product['image']) {
                    $output .= '<url>';
                    $output .= '<loc>' . $this->url->link('product/product', 'product_id=' . $product['product_id']) . '</loc>';
                    $output .= '<changefreq>weekly</changefreq>';
                    $output .= '<lastmod>' . date('Y-m-d\TH:i:sP', strtotime($product['date_modified'])) . '</lastmod>';
                    $output .= '<priority>1.0</priority>';
                    $output .= '<image:image>';
                    $output .= '<image:loc>' . $this->model_tool_image->resize($product['image'], $this->config->get($this->config->get('config_theme') . '_image_popup_width'), $this->config->get($this->config->get('config_theme') . '_image_popup_height')) . '</image:loc>';
                    $output .= '<image:caption>' . $product['name'] . '</image:caption>';
                    $output .= '<image:title>' . $product['name'] . '</image:title>';
                    $output .= '</image:image>';
                    $output .= '</url>';
                }
            }

 

к такому виду:

foreach ($products as $product) {
                    $output .= '<url>';
                    $output .= '<loc>' . $this->url->link('product/product', 'product_id=' . $product['product_id']) . '</loc>';
                    $output .= '<changefreq>weekly</changefreq>';
                    $output .= '<lastmod>' . date('Y-m-d\TH:i:sP', strtotime($product['date_modified'])) . '</lastmod>';
                    $output .= '<priority>1.0</priority>';
                    $output .= '</url>';               
            }

 

И убрать вот эту строку чуть выше:

$this->load->model('tool/image');

 

  • +1 1
Надіслати
Поділитися на інших сайтах


 

Стандартный модуль sitemap в ОК - это полный идиотизм. Автор в кой то веке решил вспомнить о существовании DRY (который намеренно игнорирует везде в ОК) и поленился сделать отдельную модель, потому модуль использует меганагруженные запросы из чужих моделей (прежде всего речь о модели товара).

 

А в ОК 2 добавилась новая беда - в сайтмап начала добавляться ссылка на изображение товара, так что нагрузка стала ещё больше.

 

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

 

В файле /catalog/controller/feed/google_sitemap.php привести вот этот кусок кода:

foreach ($products as $product) {
                if ($product['image']) {
                    $output .= '<url>';
                    $output .= '<loc>' . $this->url->link('product/product', 'product_id=' . $product['product_id']) . '</loc>';
                    $output .= '<changefreq>weekly</changefreq>';
                    $output .= '<lastmod>' . date('Y-m-d\TH:i:sP', strtotime($product['date_modified'])) . '</lastmod>';
                    $output .= '<priority>1.0</priority>';
                    $output .= '<image:image>';
                    $output .= '<image:loc>' . $this->model_tool_image->resize($product['image'], $this->config->get($this->config->get('config_theme') . '_image_popup_width'), $this->config->get($this->config->get('config_theme') . '_image_popup_height')) . '</image:loc>';
                    $output .= '<image:caption>' . $product['name'] . '</image:caption>';
                    $output .= '<image:title>' . $product['name'] . '</image:title>';
                    $output .= '</image:image>';
                    $output .= '</url>';
                }
            }

 

к такому виду:

foreach ($products as $product) {
                    $output .= '<url>';
                    $output .= '<loc>' . $this->url->link('product/product', 'product_id=' . $product['product_id']) . '</loc>';
                    $output .= '<changefreq>weekly</changefreq>';
                    $output .= '<lastmod>' . date('Y-m-d\TH:i:sP', strtotime($product['date_modified'])) . '</lastmod>';
                    $output .= '<priority>1.0</priority>';
                    $output .= '</url>';               
            }

 

И убрать вот эту строку чуть выше:

$this->load->model('tool/image');

 

Молю зевсом тебя ОК !!!! Получилось! Пропердевшись через некоторое время эта зараза построила карту сайта!!!!

 

Но теперь в валидаторе Яндекс Вебмастера она отдала такую ошибку: 

 

Неверное значение тега lastmod 

Строка 1: -0001-11-30T00:00:00+02:30

 

есть еще мысли? .....

 

за раннее благодарочка 

Надіслати
Поділитися на інших сайтах


Но теперь в валидаторе Яндекс Вебмастера она отдала такую ошибку:

Просто уберите эту строчку:

 

$output .= '<lastmod>' . date('Y-m-d\TH:i:sP', strtotime($product['date_modified'])) . '</lastmod>';

 

Я этот код скопировал из версии 2.2, в версии 2.1 ещё нет даты модификации.

Надіслати
Поділитися на інших сайтах


Просто уберите эту строчку:

 

$output .= '<lastmod>' . date('Y-m-d\TH:i:sP', strtotime($product['date_modified'])) . '</lastmod>';

 

Я этот код скопировал из версии 2.2, в версии 2.1 ещё нет даты модификации.

 

Файл Sitemap недоступен.

Not available: /sitemap.xml

Надіслати
Поділитися на інших сайтах


Это из-за слишком долгой генерации.

Я сейчас попробовал открыть ваш сайтмап, он генерировался чуть больше 2х минут. Ночью это было где-то секунд 40. Вероятно, сейчас сервер слишком нагружен и генерация идёт медленней. Сам сайтмап в порядке.

У Яндекса есть таймаут на загрузку, вот он и срабатывает.

 

Лучше всё же оптимизировать генерацию, избавившись от стандартных моделей.

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

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

сгенерировал сайтмап, залил в корень, добавляю в инструменты гугл, пишет "Ваш Sitemap не содержит URL". что делать? как быть? файл сайтамапа не пустой, в кодировке UTF-8, почти с 300 урлами.  

Надіслати
Поділитися на інших сайтах


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

сгенерировал сайтмап, залил в корень, добавляю в инструменты гугл, пишет "Ваш Sitemap не содержит URL". что делать? как быть? файл сайтамапа не пустой, в кодировке UTF-8, почти с 300 урлами.  

Если вы используете статический файл, удалите из .htaccess редирект на контроллер динамической генерации.

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

  • +1 1
Надіслати
Поділитися на інших сайтах


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

из .htaccess на сколько я понимаю нужно удалять редирект здесь!?:

\# SEO URL Settings

RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ 
 
RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
 
подскажите что именно нужно убрать?
Змінено користувачем amgrek
Надіслати
Поділитися на інших сайтах


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

Открывайте с сайта, а не с компа!

 

И если там именно то, что и должно быть, то проверьте ваш файл здесь:

https://webmaster.yandex.ua/sitemaptest.xml

Надіслати
Поділитися на інших сайтах


перезалил в корень сайта. захожу поссылке www.сайт.by/sitemap.xls - пусто! :-(

У вас сайтмап - это экселевская таблица?

У него расширение должно быть xml, а не xls.

 

Если на сайте по ссылке на сайтмап пусто, значит правильно Гугл ругается.

 

И что значит пусто? Там просто белая страница или 404 или какая-то ошибка?

 

И ещё проверьте права на файл сайтмапа, должно быть 755 или 777.

Надіслати
Поділитися на інших сайтах


  • 1 month later...

советую этот модуль https://opencartforum.com/files/file/2794-sitemappro-2x/ он избавит от геморроя с картой сайта   :-)

а то что в карте присутствуют ссылки на картинки это разве нормально 7

Надіслати
Поділитися на інших сайтах


  • 2 months later...
  • 4 months later...
В 23.06.2016 в 00:15, Dotrox сказал:

В файле /catalog/controller/feed/google_sitemap.php привести вот этот кусок кода....

Здравствуйте!

Сделал все как вы рекомендовали.

После проверки файла sitemap в яндекс вебмастере выдает следующее сообщение:

Файл Sitemap с некритичными ошибками разбора

1 ошибка

Неизвестный тег html
Указанный тег не должен встречаться в данном контексте
стр.поз.    
6 ...html...

 

Не подскажите как решить данную проблему ?

Снимок Sitemap.JPG

Надіслати
Поділитися на інших сайтах


19 минут назад, winzar сказал:

Не подскажите как решить данную проблему ?

Покажите кусок этого файла с указанной строкой и +/- 5 строк от неё.

Змінено користувачем Dotrox
Надіслати
Поділитися на інших сайтах


  • 4 months later...

Все привет, подскажите пожалуйста как добавить pdf в sitemap?
Есть желание чтоб pdf каталог индексировался, но в вебмастере смотрю что в поиске этой страницы нет...

Открыл sitemap и через поиск не нашел урл каталога типа : http://сайт/image/katalog-zapchastey-Atlas-Copco.pdf

Эту ссылку надо ведь вставить в какое то определенное место в сайтмапе? Кнопка на эту ссылку на сайте находится в категории

Помогите пожалуйста)

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.