Статистика сайта

Тема в разделе "Обо всём", создана пользователем alex516578, 27 авг 2024.

  1. alex516578

    alex516578 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Добрый день всем! Може кто то подскажет: Статистика сайта в админке показывает посетителей онлайн на сайте 500 человек. Это значит что сейчас сайт смотрят 500 человек? Я прав? Если да, то почему в статистике Яндекса показывается кординально другая цифра посетителей? Или я в чем то ошибаюсь? Подскажите пожалуйста.
     
  2. devagency

    devagency Пользователь

    Сообщения:
    47
    Симпатии:
    17
    Скорее всего он так же учитывает различных ботов, которые индексируют ваш сайт, Яндекс как правило их посещения не учитывает.
     
  3. alex516578

    alex516578 Новичок

    Сообщения:
    10
    Симпатии:
    0
    А это нормально или нужно что то предпринять?
     
  4. devagency

    devagency Пользователь

    Сообщения:
    47
    Симпатии:
    17
    На практике все пользуются либо яндекс метрикой либо google search console, а этот встроенный счетчик просто отключают.
     
  5. alex516578

    alex516578 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Ясно. Буду иметь в виду. Спасибо.
     
  6. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.570
    Симпатии:
    437
    Можно добавить что то типо такого, снизит левые запросы:
    PHP:
    $isNotBot true;
    if (isset(
    $this->request->server['HTTP_USER_AGENT'])) {
        
    $userAgent strtolower($this->request->server['HTTP_USER_AGENT']);
        
    $bots = [
            
    'googlebot''bingbot''slurp''duckduckbot''baiduspider',
            
    'yandexbot''sogou''exabot''facebot''ia_archiver',
            
    'mj12bot''ahrefsbot''semrushbot''dotbot''msnbot',
            
    'rogerbot''linkdexbot''yahoo''siteexplorer''facebookexternalhit',
            
    'linkedinbot''twitterbot''embedly''quora link preview''showyoubot',
            
    'outbrain''pinterest''slackbot''vkshare''w3c_validator',
            
    'whatsapp''curl''wget''python''libwww-perl''httpclient''java',
            
    'wordpress''joomla''drupal''node-fetch''ruby'
        
    ];

        
    // Если User-Agent содержит ключевые слова для ботов, игнорируем
        
    foreach ($bots as $bot) {
            if (
    str_contains($userAgent$bot)) {
                
    $isNotBot false;
            }
        }
    }

    if (
    $isNotBot) {
        
    $this->model_tool_online->addOnline($ip$this->customer->getId(), $url$referer);
    }
     
    Ravilr нравится это.
  7. alex516578

    alex516578 Новичок

    Сообщения:
    10
    Симпатии:
    0
    А подскажите пожалуйста в какой файл это нужно добавить?
     
  8. Blast

    Blast Продвинутый пользователь

    Сообщения:
    266
    Симпатии:
    92
    str_contains введена в PHP начиная с 8 версии. такой код положит большинство сайтов на опенкарте
     
    Ravilr нравится это.
  9. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.570
    Симпатии:
    437
    "upload/catalog/controller/common/footer.php" - контроллер отвечающий за вывод подвала сайта.

    Данный вызов как раз таки отвечает за добавлении сессии в статистику.

    PHP:
    $this->model_tool_online->addOnline($ip$this->customer->getId(), $url$referer);
    Функция str_contains действительно способна положить старые сайты, так как добавлена с 8 версии PHP.

    Вот улучшенный вариант проверки, который будет работать на динозаврах, а если не динозавр, то более новая функция:
    PHP:
    if ((function_exists('str_contains') && str_contains($userAgent$bot)) || (!function_exists('str_contains') && strpos($userAgent$bot) === false)) {
        
    $isNotBot true;
    }
     
    Blast нравится это.
  10. alex516578

    alex516578 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Добрый день. У Меня Версия OpenCart 3.0.3.7 Но ней будет корректно работать? Ботов будет меньше?
     
  11. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.570
    Симпатии:
    437
    Будет.
    Если функции чуть отличается по версиями, то что у вас добавляет статистику нужно поставить в условие if ($isNotBot)
    Если что всегда список ботов можно будет подправить.
    Кстати говоря прямо в самой админке есть список ботов, можно по идее достать их, тоже через вызов модели, но это лишний запрос...

     
  12. alex516578

    alex516578 Новичок

    Сообщения:
    10
    Симпатии:
    0
    А где в админек искать этот список?
     
  13. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.570
    Симпатии:
    437
    Код:
    ?route=setting/setting&user_token=....
    Система -> Настройки - Выберите ваш магазин (редактировать) -> Вкладка Сервер, раздел основное
     
  14. alex516578

    alex516578 Новичок

    Сообщения:
    10
    Симпатии:
    0
    А у меня нет такого раздела, есть роботы. Это не то?
     
  15. alex516578

    alex516578 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Это у меня пункт так называется. А это не повлияет на роботов яндекса, гугла и т.д.?
     
  16. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.570
    Симпатии:
    437
    То, главное найти в настройках магазина.
    Нет, данный функционал не блокирует работу ботов на сайте, так-же стараясь исключить ботов из онлайн статистика сайта.
     
  17. alex516578

    alex516578 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Большое Вам спасибо. Я написал на хостинг и они дополнительную защиту от ботов еще включили.
     
  18. alex516578

    alex516578 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Сейчас заметил у меня товары по акциям добавляются не по дате добавления, Может подскажите это можно поправить?