<!doctype html> <html lang="nl"> <head> <meta charset="UTF-8" /> <!-- Favicon for all browsers --> <link rel="icon" type="image/x-icon" href="/favicon.ico" /> <link rel="icon" type="image/x-icon" href="/assets/images/maxsusico-DfJ4YSKo.ico" /> <link rel="shortcut icon" type="image/x-icon" href="/assets/images/maxsusico-DfJ4YSKo.ico" /> <!-- PNG favicons for different sizes --> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" /> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" /> <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png" /> <!-- Apple Touch Icon for iOS devices --> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" /> <!-- Web App Manifest --> <link rel="manifest" href="/manifest.json" /> <!-- Enhanced viewport for better mobile performance --> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=yes" /> <meta name="google-site-verification" content="B3myXTBnWH0kvxnzcGfwfX1ftX4_2RRnvZxTOFrn8Qw" /> <!-- Performance optimizations --> <meta http-equiv="Accept-CH" content="DPR, Viewport-Width, Width" /> <meta name="color-scheme" content="light" /> <!-- Primary Meta Tags - Will be overridden by React for specific pages --> <title>Maatwerk Kasten & Garderobes Rotterdam | Inbouwkasten & Schuifdeurkasten | MaxSus</title> <meta name="title" content="Maatwerk Kasten & Garderobes Rotterdam | Inbouwkasten & Schuifdeurkasten | MaxSus"> <meta name="description" content="✓ Specialist in maatwerk kasten, garderobes en opbergmeubels in Rotterdam ✓ Inbouwkasten, schuifdeurkasten, TV-meubels ✓ Gratis 3D ontwerp ✓ 20+ jaar ervaring ✓ Eigen productie"> <meta name="keywords" content="maatwerk kasten Rotterdam, garderobekasten op maat, inbouwkasten Den Haag, kast op maat Gouda, schuifdeurkasten Leiden, TV meubels maatwerk, opbergkasten Spijkenisse, MaxSus meubels ontwerp"> <meta name="author" content="MaxSus"> <meta name="theme-color" content="#B38B6D" /> <!-- Enhanced SEO Meta Tags --> <meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"> <meta name="language" content="Dutch"> <meta name="revisit-after" content="7 days"> <meta name="geo.region" content="NL"> <meta name="geo.placename" content="Rotterdam"> <meta name="geo.position" content="51.9244;4.4777"> <meta name="ICBM" content="51.9244, 4.4777"> <!-- Open Graph / Facebook - Will be overridden by React for specific pages --> <meta property="og:type" content="website"> <meta property="og:url" content="https://maxsus.nl/"> <meta property="og:title" content="Maatwerk Kasten & Garderobes Rotterdam | Inbouwkasten & Schuifdeurkasten"> <meta property="og:description" content="Specialist in maatwerk kasten, garderobes en opbergmeubels in Rotterdam. Inbouwkasten, schuifdeurkasten, TV-meubels en meer op maat. Gratis 3D ontwerp en advies."> <meta property="og:image" content="https://maxsus.nl/images/og-image.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"> <meta property="og:site_name" content="MaxSus Interieurbouw"> <meta property="og:locale" content="nl_NL"> <!-- Twitter - Will be overridden by React for specific pages --> <meta property="twitter:card" content="summary_large_image"> <meta property="twitter:url" content="https://maxsus.nl/"> <meta property="twitter:title" content="Maatwerk Kasten Rotterdam | Garderobes & Inbouwkasten op Maat"> <meta property="twitter:description" content="Specialist in maatwerk kasten, garderobes en opbergmeubels. Inbouwkasten, schuifdeurkasten, TV-meubels op maat. Gratis 3D ontwerp en adviesgesprek."> <meta property="twitter:image" content="https://maxsus.nl/images/og-image.png"> <!-- Canonical Link will be set by individual pages --> <link rel="canonical" href="https://maxsus.nl/kasten-op-maat-rotterdam" id="canonical-link" /> <!-- Immediate canonical URL script to prevent crawlers from getting wrong canonical --> <script> (function() { // Immediately set canonical URL based on current path to prevent SEO issues var canonicalLink = document.getElementById('canonical-link'); if (canonicalLink && window.location.pathname !== '/') { // Remove trailing slash if present var cleanPath = window.location.pathname.replace(/\/$/, ''); // Set canonical URL immediately for service pages and other pages canonicalLink.href = 'https://maxsus.nl' + (cleanPath || '/'); } })(); </script> <!-- Additional Meta --> <meta name="format-detection" content="telephone=no"> <meta name="mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <!-- Enhanced preconnect for performance - ordered by priority --> <link rel="preconnect" href="https://tvzgptbkofpbsidsyted.supabase.co" crossorigin> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://www.googletagmanager.com"> <link rel="preconnect" href="https://analytics.tiktok.com"> <link rel="preconnect" href="https://images.unsplash.com"> <link rel="preconnect" href="https://cdn.hoog.design"> <!-- DNS prefetch for external domains --> <link rel="dns-prefetch" href="//fonts.googleapis.com"> <link rel="dns-prefetch" href="//www.googletagmanager.com"> <link rel="dns-prefetch" href="//analytics.google.com"> <link rel="dns-prefetch" href="//analytics.tiktok.com"> <!-- Resource hints for better loading --> <!-- Note: modulepreload hints for specific chunks will be added by Vite during build --> <!-- Critical CSS inline placeholder (will be filled by build process) --> <style id="critical-css"> /* Critical above-the-fold CSS will be inlined here during build */ body { font-family: Inter, system-ui, -apple-system, sans-serif; margin: 0; background: #fff; } .loading-container { display: flex; justify-content: center; align-items: center; height: 100vh; } .loading-spinner { width: 40px; height: 40px; border: 3px solid #f3f3f3; border-top: 3px solid #B38B6D; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } </style> <!-- Optimized font loading to eliminate render-blocking --> <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap"> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap" media="print" onload="this.media='all'"> <noscript> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap"> </noscript> <!-- Schema.org structured data --> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Organization", "name": "MaxSus Interieurbouw", "url": "https://maxsus.nl", "logo": "https://maxsus.nl/images/logo-structured-data.svg", "description": "Specialist in maatwerk kasten, garderobes en opbergmeubels in Rotterdam en omgeving. Inbouwkasten, schuifdeurkasten, TV-meubels en boekenkasten. 20+ jaar ervaring.", "address": { "@type": "PostalAddress", "streetAddress": "Schuttevaerweg 79", "addressLocality": "Rotterdam", "postalCode": "3044 BA", "addressRegion": "Zuid-Holland", "addressCountry": "NL" }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "08:30", "closes": "17:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Saturday", "description": "Op afspraak" } ], "contactPoint": { "@type": "ContactPoint", "contactType": "customer service", "telephone": "+31103161999", "email": "info@maxsus.nl" }, "sameAs": [ "https://instagram.com/maxsus.nl" ] } </script> <!-- Performance monitoring script --> <script> // Track Core Web Vitals function trackWebVitals() { if ('PerformanceObserver' in window) { // LCP new PerformanceObserver((entryList) => { for (const entry of entryList.getEntries()) { if (entry.entryType === 'largest-contentful-paint') { console.log('LCP:', entry.startTime); } } }).observe({entryTypes: ['largest-contentful-paint']}); // FID new PerformanceObserver((entryList) => { for (const entry of entryList.getEntries()) { if (entry.entryType === 'first-input') { console.log('FID:', entry.processingStart - entry.startTime); } } }).observe({entryTypes: ['first-input']}); // CLS new PerformanceObserver((entryList) => { for (const entry of entryList.getEntries()) { if (!entry.hadRecentInput) { console.log('CLS:', entry.value); } } }).observe({entryTypes: ['layout-shift']}); } } // Initialize when page is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', trackWebVitals); } else { trackWebVitals(); } </script> <!-- Google Analytics - Ultra-optimized loading --> <script> // Initialize dataLayer immediately window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} // Defer Google Analytics loading until after page is interactive if ('requestIdleCallback' in window) { requestIdleCallback(() => { // Only load after 5 seconds to ensure zero impact on initial load setTimeout(() => { const script = document.createElement('script'); script.src = 'https://www.googletagmanager.com/gtag/js?id=G-YQ6DPYCBL6'; script.async = true; document.head.appendChild(script); script.onload = () => { gtag('js', new Date()); gtag('config', 'G-YQ6DPYCBL6', { 'transport_type': 'beacon', 'custom_map.dimension1': 'page_performance' }); }; }, 5000); }); } else { // Fallback: load after 8 seconds setTimeout(() => { const script = document.createElement('script'); script.src = 'https://www.googletagmanager.com/gtag/js?id=G-YQ6DPYCBL6'; script.async = true; document.head.appendChild(script); script.onload = () => { gtag('js', new Date()); gtag('config', 'G-YQ6DPYCBL6'); }; }, 8000); } </script> <!-- TikTok Pixel - Performance optimized loading --> <script> // Initialize TikTok Analytics Object immediately window.TiktokAnalyticsObject = 'ttq'; var ttq = window.ttq = window.ttq || []; ttq.methods = ["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie","holdConsent","revokeConsent","grantConsent"]; ttq.setAndDefer = function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}; for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]); ttq.instance = function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e}; ttq.load = function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement("script");n.type="text/javascript",n.async=!0,n.src=r+"?sdkid="+e+"&lib="+window.TiktokAnalyticsObject;e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(n,e)}; // Defer TikTok Pixel loading to not impact initial page performance if ('requestIdleCallback' in window) { requestIdleCallback(() => { // Load after 6 seconds to ensure zero impact on Core Web Vitals setTimeout(() => { ttq.load('D20CGORC77UBOJ7PMJQ0'); ttq.page(); }, 6000); }); } else { // Fallback: load after 9 seconds setTimeout(() => { ttq.load('D20CGORC77UBOJ7PMJQ0'); ttq.page(); }, 9000); } </script> <script type="module" crossorigin src="/assets/index-Bpd0h1is.js"></script> <link rel="modulepreload" crossorigin href="/assets/js/react-core-Cayfs_la.js"> <link rel="modulepreload" crossorigin href="/assets/js/icons-CIrAQ3ad.js"> <link rel="modulepreload" crossorigin href="/assets/js/react-router-B67dAfWM.js"> <link rel="modulepreload" crossorigin href="/assets/js/vendor-DQ9EHOzZ.js"> <link rel="modulepreload" crossorigin href="/assets/js/image-utils-DW5hxR7W.js"> <link rel="modulepreload" crossorigin href="/assets/js/supabase-BOENqX9N.js"> <link rel="modulepreload" crossorigin href="/assets/js/admin-jVX4Jqc6.js"> <link rel="modulepreload" crossorigin href="/assets/js/forms-D1II83gM.js"> <link rel="stylesheet" crossorigin href="/assets/index-Yt_3OSuu.css"> </head> <body> <!-- Initial loading indicator for better perceived performance --> <div id="initial-loader" class="loading-container"> <div class="loading-spinner"></div> </div> <!-- SEO-friendly content for crawlers --> <noscript> <p><strong>MaxSus - Maatwerk Kasten Kasten & Garderobes Rotterdam en Omgeving</strong></p> <nav> <a href="/kasten-op-maat-rotterdam">Kasten op Maat</a> <a href="/inbouwkasten">Inbouwkasten</a> <a href="/schuifdeurkasten">Schuifdeurkasten</a> <a href="/kledingkasten">Kledingkasten</a> <a href="/contact">Contact</a> <a href="/showroom">Showroom</a> <a href="/portfolio">Portfolio</a> </nav> </noscript> <!-- Static H1 for SEO crawlers - will be hidden when React loads --> <h1 id="static-h1" style="position: absolute; left: -9999px; top: -9999px;"> Maatwerk Kasten & Garderobes Rotterdam - Inbouwkasten & Schuifdeurkasten </h1> <!-- Hidden SEO content that crawlers can see --> <div style="position: absolute; left: -9999px; top: -9999px;"> <p><strong>MaxSus - Maatwerk Kasten & Inbouwkasten in Rotterdam en omgeving (70km)</strong></p> <h2>Kasten op Maat in deze steden:</h2> <nav> <a href="/kasten-rotterdam">Maatwerk Kasten Rotterdam</a> <a href="/inbouwkasten-den-haag">Inbouwkasten Den Haag</a> <a href="/kast-op-maat-gouda">Kast op Maat Gouda</a> <a href="/schuifdeurkasten-leiden">Schuifdeurkasten Leiden</a> <a href="/kasten-showroom-dordrecht">Kasten Showroom Dordrecht</a> <a href="/contact">Gratis Adviesgesprek</a> <a href="/showroom">Showroom Bezoeken</a> <a href="/portfolio">Portfolio Projecten</a> </nav> </div> <div id="root"></div> </body> </html>