PageSourceSearch

https://ghostroute.ai/

html ghostroute.ai collected 2026-10-09 22:01:23 UTC 7,187 bytes, 114 lines download raw bytes

1<!doctype html>
2<html lang="en">
3  <head>
4    <meta charset="UTF-8" />
5    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6    <!-- Google Consent Mode v2 — default deny until user opts in (global) -->
7    
7<script>
8      window.dataLayer = window.dataLayer || [];
9      function gtag(){dataLayer.push(arguments);}
10      window.gtag = gtag;
11      gtag('consent', 'default', {
12        'ad_storage': 'denied',
13        'ad_user_data': 'denied',
14        'ad_personalization': 'denied',
15        'analytics_storage': 'denied',
16        'personalization_storage': 'denied',
17        'functionality_storage': 'granted',
18        'security_storage': 'granted',
19        'wait_for_update': 500
20      });
21    </script>
21
22    <!-- Google Tag Manager -->
23    
23<script>
vendor: 343 bytes, lines 23-27
23(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
24    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
25    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
26    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
27    })(window,document,'script','dataLayer','
27GTM-528P5DF3
vendor: 3 bytes, line 27
27');
27</script>
27
28    <!-- End Google Tag Manager -->
29    <title>Ghost Route ✦</title>
30    <meta name="description" content="Stop losing visitors to 404s. Ghost Route uses AI to rescue broken-page traffic in real time — before anyone bounces.">
31    <meta name="author" content="Ghost Route" />
32    <meta name="keywords" content="404 recovery, broken page redirect, AI URL matching, visitor recovery, 404 rescue, redirect management, broken page recovery, AI 404 redirect" />
33    <link rel="canonical" href="https://ghostroute.ai" />
34    <link rel="preconnect" href="https://fonts.googleapis.com" />
35    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
36    <link rel="preconnect" href="https://ipapi.co" />
37    <link rel="preconnect" href="https://kncrzgjbhxoqruhabluo.supabase.co" />
38    <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" onload="this.onload=null;this.rel='stylesheet'" />
39    <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" /></noscript>
40    <link rel="icon" type="image/png" href="/favicon-96x96.png">
41    <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
42    <link rel="shortcut icon" href="/favicon.ico" />
43    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
44    <meta name="apple-mobile-web-app-title" content="Ghost Route" />
45    <link rel="manifest" href="/site.webmanifest" />
46
47    <meta property="og:type" content="website" />
48    
49    
50    <meta property="og:image" content="https://storage.googleapis.com/gpt-engineer-file-uploads/m9pRocvDzLP0v2nT7SIDvqW7Ozz2/social-images/social-1772386996073-Screenshot_2026-03-01_at_11.43.02_AM.webp">
51
52    <meta name="twitter:card" content="summary_large_image" />
53    
54    
55    <meta name="twitter:image" content="https://storage.googleapis.com/gpt-engineer-file-uploads/m9pRocvDzLP0v2nT7SIDvqW7Ozz2/social-images/social-1772386996073-Screenshot_2026-03-01_at_11.43.02_AM.webp">
56
57    
58    
58<script>
59      (function(){
60        var hostname = window.location.hostname;
61        var pathname = window.location.pathname;
62        var search = window.location.search;
63
64        var isOwnDomain = hostname === 'ghostroute.ai' || hostname === 'www.ghostroute.ai';
65        var appRoutes = ['/dashboard','/logs','/manual-mapping','/export','/patterns','/alerts','/settings','/account','/admin','/super-admin','/forgot-password','/reset-password','/login','/signup'];
66        var publicRoutes = ['/blog','/contact','/pricing','/privacy','/terms','/cookies','/waitlist','/about','/demo','/help','/support','/sales'];
67        var isAppRoute = appRoutes.some(function(r){ return pathname === r || pathname.startsWith(r + '/'); });
68        var isPublicRoute = publicRoutes.some(function(r){ return pathname === r || pathname.startsWith(r + '/'); });
69        var isLovablePreview = hostname.indexOf('lovable.app') !== -1 || hostname.indexOf('lovable.dev') !== -1;
70        var hasLovableToken = search.indexOf('__lovable_token') !== -1;
71        var hasForceHideBadge = search.indexOf('forceHideBadge') !== -1;
72        var isHtmlFile = pathname.endsWith('.html');
73
74        if (isOwnDomain && !isAppRoute && !isPublicRoute && !isLovablePreview && !hasLovableToken && !hasForceHideBadge && !isHtmlFile) {
75          var s = document.createElement('script');
76          s.defer = true;
77          s.src = 'https://ghostroute.lovable.app/agent.js?v=20260403';
78          s.dataset.siteId = '33d60f36-6292-4d1d-8336-4fe0acaa5c99';
79          s.dataset.apiKey = 'd583a53e-f593-40d6-80c9-ed9e0199ceea';
80          s.dataset.apiUrl = 'https://kncrzgjbhxoqruhabluo.supabase.co/functions/v1/public-redirect';
81          document.head.appendChild(s);
82        }
83      })();
84    </script>
84
85    
86  
87  
88  
89  
90  
91  
92  
93  <meta property="og:title" content="Ghost Route — AI-Powered 404 Rescue for Websites">
94  <meta name="twitter:title" content="Ghost Route — AI-Powered 404 Rescue for Websites">
95  <meta property="og:description" content="Ghost Route silently catches every 404 on your website and redirects visitors to the right page using AI — in under a second. Free to start, no developer needed.">
96  <meta name="twitter:description" content="Ghost Route silently catches every 404 on your website and redirects visitors to the right page using AI — in under a second. Free to start, no developer needed.">
97  <meta property="og:url" content="https://ghostroute.ai">
98  
98<script type="module" crossorigin src="/assets/index-Bgu4swdm.js"></script>
98
99  <link rel="modulepreload" crossorigin href="/assets/vendor-D1Nne4sQ.js">
100  <link rel="modulepreload" crossorigin href="/assets/query-BGOaZIr3.js">
101  <link rel="modulepreload" crossorigin href="/assets/ui-D0rgk3tM.js">
102  <link rel="modulepreload" crossorigin href="/assets/charts-B3MsXOwe.js">
103  <link rel="stylesheet" crossorigin href="/assets/index-Rqg4M7hM.css">
104<script defer src="/~flock.js" data-proxy-url="/~api/analytics"></script>
104<script defer src="/__l5e/events.1718a1eacac7ff3a.js" data-artifact-kind="dwl_content_hash" data-artifact-id="2c1a584c373d5fe431a2d9bf175fecda3a8d2965d7164ac739cf67e9ea43b131" data-commit-sha="b8c527926428465480996790fcb88259fa68e344" data-context-token="v1.eyJwcm9qZWN0X2lkIjoibG92cF81Nm1uODdocWNnOWVrOTNkdDBraDc4c3ZlZCIsImFydGlmYWN0X2tpbmQiOiJkd2xfY29udGVudF9oYXNoIiwiYXJ0aWZhY3RfaWQiOiIyYzFhNTg0YzM3M2Q1ZmU0MzFhMmQ5YmYxNzVmZWNkYTNhOGQyOTY1ZDcxNjRhYzczOWNmNjdlOWVhNDNiMTMxIiwiY29tbWl0X3NoYSI6ImI4YzUyNzkyNjQyODQ2NTQ4MDk5Njc5MGZjYjg4MjU5ZmE2OGUzNDQiLCJleHAiOjE3OTQxNzUyODN9.vy4UYKzpNXsFXo35IvxLk-fiY6Gfob9lumJ4-OK0nDQ"></script>
104</head>
105
106  <body>
107    <a href="#main-content" class="skip-link">Skip to main content</a>
108    <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 108-109
108
109    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
109GTM-528P5DF3
vendor: 91 bytes, lines 109-111
109"
110    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
111    
111<!-- End Google Tag Manager (noscript) -->
112    <div id="root"></div>
113  </body>
114</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.