array( 'kind' => 'replaces', 'group' => 'seo', 'label' => 'Rank Math SEO', 'slug' => 'seo-by-rank-math', 'store' => 'Rank Math', 'import' => 'rankmath', 'plugin' => 'seo-by-rank-math/rank-math.php', 'ours' => array( 'label' => __( 'SEO engine, 5 pages', 'ai-eshop-optimizer' ), 'tabs' => array( 'seo_general', 'seo_schema', 'seo_social', 'seo_redirects', 'seo_health' ), ), 'note_except' => array( 'seo_general' ), 'aliases' => array( 'rank math', 'rankmath', 'rank-math', 'seo by rank math', 'rank math seo', 'rank math pro' ), ), 'yoast' => array( 'kind' => 'replaces', 'group' => 'seo', 'label' => 'Yoast SEO', 'slug' => 'wordpress-seo', 'store' => 'Yoast SEO', 'import' => 'yoast', 'plugin' => 'wordpress-seo/wp-seo.php', 'ours' => array( 'label' => __( 'SEO engine, 5 pages', 'ai-eshop-optimizer' ), 'tabs' => array( 'seo_general', 'seo_schema', 'seo_social', 'seo_redirects', 'seo_health' ), ), 'note_except' => array( 'seo_general' ), 'aliases' => array( 'yoast', 'yoast seo', 'wordpress seo', 'wpseo', 'yoast premium' ), ), 'aioseo' => array( 'kind' => 'replaces', 'group' => 'seo', 'label' => 'All in One SEO', 'slug' => 'all-in-one-seo-pack', 'store' => 'AIOSEO', 'import' => 'aioseo', 'plugin' => 'all-in-one-seo-pack/all_in_one_seo_pack.php', 'ours' => array( 'label' => __( 'SEO engine, 5 pages', 'ai-eshop-optimizer' ), 'tabs' => array( 'seo_general', 'seo_schema', 'seo_social', 'seo_redirects', 'seo_health' ), ), 'note_except' => array( 'seo_general' ), 'aliases' => array( 'aioseo', 'all in one seo', 'all-in-one seo', 'all in one seo pack', 'aioseo pro' ), ), 'pixelyoursite' => array( 'kind' => array( 'conflicts', 'supersedes' ), 'group' => 'pixels', 'label' => 'PixelYourSite', 'slug' => 'pixelyoursite', 'plugin' => array( 'pixelyoursite/facebook-pixel-master.php', 'pixelyoursite-pro/pixelyoursite-pro.php' ), 'detect' => array( 'function' => 'PixelYourSite\Facebook', 'callable' => 'AIEO_DMM_Conversions::pys_pixels', ), 'evidence' => 'AIEO_DMM_Conversions::pys_evidence', 'fault' => __( 'Both send Meta events for the same purchases. While both are on, every purchase is reported twice.', 'ai-eshop-optimizer' ), 'ours' => array( 'label' => __( 'Meta tracking', 'ai-eshop-optimizer' ), 'tabs' => array( 'conversions' ), 'on' => 'AIEO_DMM_Conversions::meta_on', ), 'tier' => 'free', 'aliases' => array( 'pixelyoursite', 'pixel your site', 'pys', 'pixelyoursite pro', 'meta pixel plugin', 'facebook pixel plugin' ), ), 'sg_security' => array( 'kind' => 'supersedes', 'group' => 'security', 'label' => 'SiteGround Security Optimizer', 'slug' => 'sg-security', 'plugin' => 'sg-security/sg-security.php', 'ours' => array( 'label' => __( 'Security hardening', 'ai-eshop-optimizer' ), 'tabs' => array( 'security_tightening' ), ), 'note' => __( 'SiteGround Security is still active. While both are running they filter the same things, so turning something off here may not change what visitors see. Switch on what you want here first, check it, then deactivate the other plugin.', 'ai-eshop-optimizer' ), 'tier' => 'free', 'aliases' => array( 'sg security', 'siteground security', 'security optimizer', 'sg security optimizer', 'siteground' ), ), 'om_checkout' => array( 'kind' => array( 'conflicts', 'supersedes' ), 'group' => 'checkout', 'label' => 'OM Checkout Handling', 'plugin' => 'om-checkout-handling/om-checkout-handling.php', 'detect' => array( 'constant' => 'OM_CHECKOUT_VERSION' ), 'fault' => __( 'Both add a Cash on Delivery fee at checkout. While both are on, the customer pays that fee twice.', 'ai-eshop-optimizer' ), 'ours' => array( 'label' => __( 'Cash on Delivery fee', 'ai-eshop-optimizer' ), 'tabs' => array( 'free_shipping' ), 'on' => 'AIEO_DMM_Free_Shipping::cod_fee_on', ), 'tier' => 'free', 'aliases' => array( 'om checkout handling', 'checkout handling', 'legacy checkout plugin', 'cod fee plugin', 'cash on delivery fee' ), ), 'sitekit' => array( 'kind' => 'alongside', 'group' => 'pixels', 'label' => 'Google Site Kit', 'slug' => 'google-site-kit', 'plugin' => 'google-site-kit/google-site-kit.php', 'ours' => array( 'label' => __( 'GA4 tracking', 'ai-eshop-optimizer' ), 'tabs' => array( 'conversions' ), ), 'note_except' => array( 'conversions' ), 'lines' => array( __( 'Keep it. Choose "Defer to Google Site Kit" as the GA4 source on Who sends the conversion signals, and Rooster One sends nothing of its own to Analytics.', 'ai-eshop-optimizer' ), __( 'Meta, TikTok and OpenAI events are Rooster One\'s to send; Site Kit does not send those, so nothing is counted twice there.', 'ai-eshop-optimizer' ), __( 'If you ever remove Site Kit, switch the GA4 source to Rooster One and paste your Measurement ID.', 'ai-eshop-optimizer' ), ), 'tier' => 'free', 'aliases' => array( 'site kit', 'sitekit', 'google site kit', 'google analytics plugin', 'ga4 plugin' ), ), 'cookieyes' => array( 'kind' => 'alongside', 'group' => 'consent', 'label' => 'CookieYes', 'slug' => 'cookie-law-info', 'cmp' => 'CookieYes', 'plugin' => 'cookie-law-info/cookie-law-info.php', 'lines' => array( __( 'Keep it. Rooster One reads the consent CookieYes records and shows no banner of its own.', 'ai-eshop-optimizer' ), __( 'Pixels, analytics and the server-side events all wait for that consent, so one banner governs everything.', 'ai-eshop-optimizer' ), __( 'If you ever remove CookieYes, Rooster One has a banner of its own under Frontend → Built-in Features → GDPR Cookie Consent.', 'ai-eshop-optimizer' ), ), 'aliases' => array( 'cookieyes', 'cookie yes', 'cookie law info', 'gdpr cookie consent', 'cookie banner' ), ), ); $aieo_overlap_cache = array( 'breeze' => array( 'Breeze', 'breeze', 'breeze/breeze.php', array( 'breeze', 'breeze cache', 'cloudways cache' ) ), 'wp_rocket' => array( 'WP Rocket', 'wp-rocket', 'wp-rocket/wp-rocket.php', array( 'wp rocket', 'wprocket', 'rocket cache' ) ), 'litespeed_cache' => array( 'LiteSpeed Cache', 'litespeed-cache', 'litespeed-cache/litespeed-cache.php', array( 'litespeed', 'litespeed cache', 'lscache' ) ), 'w3_total_cache' => array( 'W3 Total Cache', 'w3-total-cache', 'w3-total-cache/w3-total-cache.php', array( 'w3 total cache', 'w3tc', 'w3 cache' ) ), 'wp_fastest_cache' => array( 'WP Fastest Cache', 'wp-fastest-cache', 'wp-fastest-cache/wpFastestCache.php', array( 'wp fastest cache', 'fastest cache', 'wpfc' ) ), 'autoptimize' => array( 'Autoptimize', 'autoptimize', 'autoptimize/autoptimize.php', array( 'autoptimize', 'auto optimize', 'asset optimiser' ) ), 'wp_optimize' => array( 'WP-Optimize', 'wp-optimize', 'wp-optimize/wp-optimize.php', array( 'wp optimize', 'wp-optimize', 'wpoptimize' ) ), ); foreach ( $aieo_overlap_cache as $aieo_overlap_id => $aieo_overlap_c ) { $aieo_overlap_rows[ $aieo_overlap_id ] = array( 'kind' => 'alongside', 'group' => 'cache', 'label' => $aieo_overlap_c[0], 'slug' => $aieo_overlap_c[1], 'plugin' => $aieo_overlap_c[2], 'lines' => array( sprintf( __( 'Keep it. %s handles your caching and Rooster One does not compete with it: we serve our own pre-built minified files and touch nothing else.', 'ai-eshop-optimizer' ), $aieo_overlap_c[0] ), __( 'If you ever see broken styling after a Rooster One update, clear that plugin\'s cache first: a cached bundle built before the update is the usual cause.', 'ai-eshop-optimizer' ), __( 'Rooster One has no page cache of its own to switch on, so there is nothing to move over.', 'ai-eshop-optimizer' ), ), 'tier' => 'free', 'aliases' => array_merge( array( 'cache plugin', 'caching' ), $aieo_overlap_c[3] ), ); } unset( $aieo_overlap_cache, $aieo_overlap_id, $aieo_overlap_c ); return $aieo_overlap_rows;