You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决Google Page Speed Insight重定向警告:排除爬虫触发JS重定向

解决爬虫/Google Bot触发语言重定向导致Page Speed警告的问题

你的脚本目前会根据浏览器语言自动重定向非印尼语用户,但爬虫(如Google Bot、PageSpeed Insight检测工具)访问时也会触发重定向,导致PageSpeed给出警告。以下是修改后的代码,添加了爬虫识别逻辑,确保脚本仅对真实用户执行:

// 检测是否为爬虫/机器人
function isBot() {
    const userAgent = navigator.userAgent.toLowerCase();
    // 匹配常见爬虫的User Agent特征
    const botKeywords = [
        'googlebot', 'bingbot', 'slurp', 'duckduckbot', 'baiduspider',
        'yandexbot', 'sogou', 'exabot', 'facebot', 'ia_archiver',
        'pagespeed', 'chrome-lighthouse'
    ];
    return botKeywords.some(keyword => userAgent.includes(keyword));
}

// 如果是爬虫,直接终止脚本执行
if (isBot()) return;

// Mendeteksi bahasa browser pengguna
var userLanguage = navigator.language || navigator.userLanguage;

// Mendapatkan preferensi bahasa pengguna dari localStorage
var preferredLanguage = localStorage.getItem('preferredLanguage');

// Mendapatkan timestamp terakhir dari redirect
var lastRedirectTime = localStorage.getItem('lastRedirectTime');
var currentTime = new Date().getTime();
var oneDay = 24 * 60 * 60 * 1000; // Waktu dalam milidetik untuk 24 jam

// Fungsi untuk melakukan redirect dengan pengecekan waktu
function redirectIfNeeded(url) {
    if (!lastRedirectTime || currentTime - lastRedirectTime > oneDay) {
        localStorage.setItem('lastRedirectTime', currentTime);
        window.location.href = url;
    }
}

// Jika tidak ada preferensi bahasa yang disimpan di localStorage
if (!preferredLanguage) {
    // Jika bahasa pengguna bukan bahasa Indonesia ('id')
    if (userLanguage !== 'id') {
        // Redirect ke halaman bahasa Inggris dengan pengecekan waktu
        redirectIfNeeded("https://www.my-website.com/en");
    }
} else {
    // Jika preferensi bahasa adalah bahasa Indonesia ('id')
    if (preferredLanguage === 'id') {
        // Redirect ke halaman bahasa Indonesia
        window.location.href = "https://www.my-website.com";
    }
}

// Fungsi untuk mengubah bahasa ke bahasa Indonesia dan menyimpan preferensi di localStorage
function changeToIndonesian() {
    localStorage.setItem('preferredLanguage', 'id');
    window.location.href = "https://www.my-website.com";
}

// Fungsi untuk mengubah bahasa ke bahasa Inggris dan menyimpan preferensi di localStorage
function changeToEnglish() {
    localStorage.setItem('preferredLanguage', 'en');
    window.location.href = "https://www.my-website/en";
}

关键说明:

  • 爬虫识别函数isBot():通过检查浏览器的userAgent字段,匹配常见爬虫的特征关键词,覆盖Google Bot、PageSpeed Insight、各大搜索引擎爬虫等场景。
  • 前置判断逻辑:脚本开头先执行isBot()检测,若判定为爬虫则直接终止后续代码,避免触发重定向。
  • 原有功能保留:真实用户访问时,脚本仍按原有逻辑执行语言检测和重定向,不影响用户体验。

内容的提问来源于stack exchange,提问作者Yohanes Christian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 13:18:11