Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* =======================================================
- π Modapaya Performance Optimizer v2.0
- Author: ChatGPT Assistant
- Description: Full-site performance booster for BigCommerce
- ======================================================= */
- (function() {
- "use strict";
- /* =============================
- 1οΈβ£ Preload Hero Banner Image
- ============================= */
- var heroURL = 'https://cdn11.bigcommerce.com/s-t48lqqxd8a/images/stencil/original/image-manager/image-2025-06-08-124235809.webp';
- if (!document.querySelector(`link[rel="preload"][href="${heroURL}"]`)) {
- const preloadHero = document.createElement('link');
- preloadHero.rel = 'preload';
- preloadHero.as = 'image';
- preloadHero.href = heroURL;
- document.head.appendChild(preloadHero);
- }
- /* =============================
- 2οΈβ£ Preconnect to Key Origins
- ============================= */
- const origins = [
- 'https://cdn11.bigcommerce.com',
- 'https://fonts.googleapis.com',
- 'https://fonts.gstatic.com'
- ];
- origins.forEach(url => {
- const pre = document.createElement('link');
- pre.rel = 'preconnect';
- pre.href = url;
- pre.crossOrigin = 'anonymous';
- document.head.appendChild(pre);
- const dns = document.createElement('link');
- dns.rel = 'dns-prefetch';
- dns.href = url;
- document.head.appendChild(dns);
- });
- /* =============================
- 3οΈβ£ Lazyload All Images
- ============================= */
- document.addEventListener('DOMContentLoaded', function() {
- const imgs = document.querySelectorAll('img:not([loading])');
- imgs.forEach(img => {
- img.setAttribute('loading', 'lazy');
- img.setAttribute('decoding', 'async');
- });
- });
- /* =============================
- 4οΈβ£ Auto WebP Converter
- (Switch .jpg/.png to .webp if available)
- ============================= */
- function switchToWebP(img) {
- if (!img.dataset.webpChecked) {
- const src = img.getAttribute('src');
- if (src && /\.(jpg|jpeg|png)$/i.test(src)) {
- const webpURL = src.replace(/\.(jpg|jpeg|png)(\?.*)?$/i, '.webp$2');
- fetch(webpURL, { method: 'HEAD' })
- .then(res => {
- if (res.ok) {
- img.src = webpURL;
- }
- })
- .catch(() => {});
- }
- img.dataset.webpChecked = 'true';
- }
- }
- document.addEventListener('DOMContentLoaded', function() {
- document.querySelectorAll('img').forEach(img => switchToWebP(img));
- });
- /* =============================
- 5οΈβ£ Defer All Non-GTM Scripts
- ============================= */
- window.addEventListener('load', function() {
- const scripts = document.querySelectorAll('script[src]');
- scripts.forEach(script => {
- const src = script.getAttribute('src');
- if (
- src &&
- !src.includes('googletagmanager.com') &&
- !src.includes('gtag/js') &&
- !src.includes('analytics.js')
- ) {
- script.setAttribute('defer', '');
- }
- });
- });
- /* =============================
- 6οΈβ£ Font Optimization
- ============================= */
- const preloadFont = document.createElement('link');
- preloadFont.rel = 'preload';
- preloadFont.as = 'style';
- preloadFont.href = 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap';
- document.head.appendChild(preloadFont);
- const applyFont = document.createElement('link');
- applyFont.rel = 'stylesheet';
- applyFont.href = preloadFont.href;
- document.head.appendChild(applyFont);
- })();
Advertisement
Add Comment
Please, Sign In to add comment