FB Twitter (function () { try { var ua = (navigator.userAgent || "").toLowerCase(); var suspicious = false; // Allow “good” search bots so SEO still works var goodBots = [ "googlebot", "bingbot", "duckduckbot", "slurp", // Yahoo "linkedinbot" ]; for (var i = 0; i < goodBots.length; i++) { if (ua.indexOf(goodBots[i]) !== -1) { return; // let them pass } } // Known “bad” / scraping user-agents var badAgents = [ "ahrefsbot", "semrushbot", "mj12bot", "python-requests", "python-urllib", "curl/", "wget", "scrapy", "httpclient", "java/", "okhttp", "guzzlehttp", "node-fetch", "axios", "httpx", "php/", "perl", "ruby", "phantomjs", "headlesschrome", "puppeteer", "selenium", "spider", "crawler" ]; for (var j = 0; j < badAgents.length; j++) { if (ua.indexOf(badAgents[j]) !== -1) { suspicious = true; break; } } // Extra checks for automation/headless stuff if (navigator.webdriver) { suspicious = true; } if (window.chrome && window.chrome.runtime && ua.indexOf("edge") === -1 && ua.indexOf("edg/") === -1) { // Normal Chrome – fine } else if (/chrome/.test(ua) && !/edge|edg\//.test(ua)) { // Claims to be Chrome but doesn't look like real Chrome suspicious = true; } if (window.screen && (screen.width === 0 || screen.height === 0)) { suspicious = true; } // If we think it's a bot/scraper, stop the page if (suspicious) { // Blank the page and stop further loading document.documentElement.innerHTML = ""; try { window.stop(); } catch (e) {} } } catch (e) { // Fail silently – never break the site for real users } })();
top of page

Don't sell but educate.

In times like this, it is difficult to know what to post and what to communicate. Our advice, don't sell but educate. Communicate, Educate, Advise and Support

Your clients will thank you for it


Comments


bottom of page