PageSourceSearch

https://restaurantsmelt.nl/

html restaurantsmelt.nl collected 2026-10-08 03:50:28 UTC 56,250 bytes, 882 lines download raw bytes

1<!DOCTYPE html>
2<html lang="nl-NL">
3<head>
4    <!-- Google Tag Manager -->
5    
5<script>
vendor: 343 bytes, lines 5-9
5(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
6    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
7    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
8    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
9    })(window,document,'script','dataLayer','
9GTM-MX9ZKHRN
vendor: 3 bytes, line 9
9');
9</script>
9
10    <!-- End Google Tag Manager -->
11
12
13	<meta charset="UTF-8">
14	<meta name="viewport" content="width=device-width, initial-scale=1.0">
15	<meta name="format-detection" content="telephone=no">
16	<meta name="description" content="Description">
17
18	<title>Restaurant Smelt - Kaasfondue Amsterdam, Breda en Den Bosch</title>
19
20	<link rel="preload" href="https://restaurantsmelt.nl/wp-content/themes/smelt/dist/static/fonts/HelveticaRounded-Bold.woff2" as="font" crossorigin>
21
22	<link rel="preconnect" href="https://fonts.googleapis.com">
23	<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
24	<link href="https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@0,300;0,400;0,700;0,900;1,300;1,400;1,700;1,900&display=swap" rel="stylesheet">
25    
26    <link rel="apple-touch-icon" sizes="180x180" href="https://restaurantsmelt.nl/wp-content/themes/smelt/favicon/apple-touch-icon.png">
27    <link rel="icon" type="image/png" sizes="32x32" href="https://restaurantsmelt.nl/wp-content/themes/smelt/favicon/favicon-32x32.png">
28    <link rel="icon" type="image/png" sizes="16x16" href="https://restaurantsmelt.nl/wp-content/themes/smelt/favicon/favicon-16x16.png">
29    <link rel="manifest" href="https://restaurantsmelt.nl/wp-content/themes/smelt/favicon/site.webmanifest">
30    <link rel="mask-icon" href="https://restaurantsmelt.nl/wp-content/themes/smelt/favicon/safari-pinned-tab.svg" color="#000000">
31    <link rel="shortcut icon" href="https://restaurantsmelt.nl/wp-content/themes/smelt/favicon/favicon.ico">
32    <meta name="msapplication-TileColor" content="#ffffff">
33    <meta name="msapplication-config" content="https://restaurantsmelt.nl/wp-content/themes/smelt/favicon/browserconfig.xml">
34    <meta name="theme-color" content="#ffffff">
35
36    <meta name="facebook-domain-verification" content="749ze6hgyenoosgoi9nt8tinbx3ld1" />
37
38    <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
39
40	<!-- This site is optimized with the Yoast SEO plugin v28.6 - https://yoast.com/product/yoast-seo-wordpress/ -->
41	<meta name="description" content="Restaurant Smelt serveert de beste kaasfondue in Amsterdam en &#039;s-Hertogenbosch. Ambachtelijke kazen, gezellige sfeer. Binnenkort ook in Breda!" />
42	<link rel="canonical" href="https://restaurantsmelt.nl/" />
43	<meta property="og:locale" content="nl_NL" />
44	<meta property="og:type" content="website" />
45	<meta property="og:title" content="Restaurant Smelt - Kaasfondue Amsterdam, Breda en Den Bosch" />
46	<meta property="og:description" content="Restaurant Smelt serveert de beste kaasfondue in Amsterdam en &#039;s-Hertogenbosch. Ambachtelijke kazen, gezellige sfeer. Binnenkort ook in Breda!" />
47	<meta property="og:url" content="https://restaurantsmelt.nl/" />
48	<meta property="og:site_name" content="Restaurant Smelt" />
49	<meta property="article:modified_time" content="2026-09-15T11:36:01+00:00" />
50	<meta name="twitter:card" content="summary_large_image" />
51	
51<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/restaurantsmelt.nl\/","url":"https:\/\/restaurantsmelt.nl\/","name":"Restaurant Smelt - Kaasfondue Amsterdam, Breda en Den Bosch","isPartOf":{"@id":"https:\/\/restaurantsmelt.nl\/#website"},"datePublished":"2024-06-06T10:44:35+00:00","dateModified":"2026-09-15T11:36:01+00:00","description":"Restaurant Smelt serveert de beste kaasfondue in Amsterdam en 's-Hertogenbosch. Ambachtelijke kazen, gezellige sfeer. Binnenkort ook in Breda!","breadcrumb":{"@id":"https:\/\/restaurantsmelt.nl\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/restaurantsmelt.nl\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/restaurantsmelt.nl\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/restaurantsmelt.nl\/#website","url":"https:\/\/restaurantsmelt.nl\/","name":"Restaurant Smelt","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/restaurantsmelt.nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"}]}</script>
51
52	<!-- / Yoast SEO plugin. -->
53
54
55<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://restaurantsmelt.nl/wp-json/oembed/1.0/embed?url=https%3A%2F%2Frestaurantsmelt.nl%2F" />
56<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://restaurantsmelt.nl/wp-json/oembed/1.0/embed?url=https%3A%2F%2Frestaurantsmelt.nl%2F&#038;format=xml" />
57<style id="wp-img-auto-sizes-contain-inline-css">
58img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
59/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
60</style>
61<link rel='stylesheet' id='sbi-tokens-local-css' href='https://restaurantsmelt.nl/wp-content/plugins/instagram-feed/assets/tokens/sb-tokens-local.css?ver=6.14.0' media='all' />
62<link rel='stylesheet' id='sbi_styles-css' href='https://restaurantsmelt.nl/wp-content/plugins/instagram-feed/css/sbi-styles.min.css?ver=6.14.0' media='all' />
63<style id="wp-emoji-styles-inline-css">
64
65	img.wp-smiley, img.emoji {
66		display: inline !important;
67		border: none !important;
68		box-shadow: none !important;
69		height: 1em !important;
70		width: 1em !important;
71		margin: 0 0.07em !important;
72		vertical-align: -0.1em !important;
73		background: none !important;
74		padding: 0 !important;
75	}
76/*# sourceURL=wp-emoji-styles-inline-css */
77</style>
78<style id="classic-theme-styles-inline-css">
79/*! This file is auto-generated */
80.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
81/*# sourceURL=/wp-includes/css/classic-themes.min.css */
82</style>
83
84<style id="global-styles-inline-css">
85:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
85--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
85.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
86/*# sourceURL=global-styles-inline-css */
87</style>
88
89<link rel='stylesheet' id='dashicons-css' href='https://restaurantsmelt.nl/wp-includes/css/dashicons.min.css?ver=7.1.3' media='all' />
90<link rel='stylesheet' id='wpml-legacy-horizontal-list-0-css' href='https://restaurantsmelt.nl/wp-content/plugins/sitepress-multilingual-cms/templates/language-switchers/legacy-list-horizontal/style.min.css?ver=510000' media='all' />
91<link rel='stylesheet' id='main-css-css' href='https://restaurantsmelt.nl/wp-content/themes/smelt/dist/css/bundle.css?ver=1.0' media='all' />
92<script id="wpml-cookie-js-extra">
93var wpml_cookies = {"wp-wpml_current_language":{"value":"nl","expires":"Fri, 09 Oct 2026 03:50:28 GMT","path":"/"}};
94//# sourceURL=wpml-cookie-js-extra
95</script>
vendor: 1 bytes, line 95
95
96<script data-wp-strategy="defer" defer id="wpml-cookie-js" src="https://restaurantsmelt.nl/wp-content/plugins/sitepress-multilingual-cms/res/js/cookies/language-cookie.js?ver=510000"></script>
vendor: 1 bytes, line 96
96
97<script id="facebook-signal-js-extra">
98var facebookSignalConfig = {"cookieName":"wc_facebook_signals_state","ajaxUrl":"https://restaurantsmelt.nl/wp-admin/admin-ajax.php","signalsAction":"fbpix_set_pixel_signals","signalsNonce":"2ad143726b"};
99//# sourceURL=facebook-signal-js-extra
100</script>
vendor: 1 bytes, line 100
100
101<script id="facebook-signal-js" src="https://restaurantsmelt.nl/wp-content/plugins/official-facebook-pixel/core/../js/facebook_signal.js?ver=5.2.2"></script>
vendor: 1 bytes, line 101
101
102<script id="jquery-core-js" src="https://restaurantsmelt.nl/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 102
102
103<script id="jquery-migrate-js" src="https://restaurantsmelt.nl/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
103
104<link rel="https://api.w.org/" href="https://restaurantsmelt.nl/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://restaurantsmelt.nl/wp-json/wp/v2/pages/6" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://restaurantsmelt.nl/xmlrpc.php?rsd" />
105<meta name="generator" content="WordPress 7.1.3" />
106<link rel='shortlink' href='https://restaurantsmelt.nl/' />
107<meta name="generator" content="WPML ver:5.1.0 stt:37,1;" />
108<meta name="google-site-verification" content="tKfCIHlWcdL2VBFEDCl-D54jh6X-77WVdK9DdzP4nms" />
109
110<!-- Meta Pixel Code -->
111<script type='text/javascript'>
112!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
113n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
114n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
115t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
116document,'script','https://connect.facebook.net/en_US/fbevents.js');
117</script>
117
118<!-- End Meta Pixel Code -->
119<script type='text/javascript'>FacebookSignal.init({"held":false,"ajaxUrl":"https:\/\/restaurantsmelt.nl\/wp-admin\/admin-ajax.php","releaseAction":"fbpix_release_signals","pixelId":"1598148811238914","attribution":{},"capig":"1"});FacebookSignal.initPixel("1598148811238914",{},{"agent":"wordpress_0-7.1.3-5.2.2","includeCapiIntegration":true});</script>
119<script type='text/javascript'>
120    fbq('track', 'PageView', []);
121  </script>
121</head>
122<body class="home wp-singular page-template-default page page-id-6 wp-theme-smelt">
123
124<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 124-125
124
125<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
125GTM-MX9ZKHRN
vendor: 83 bytes, lines 125-126
125"
126height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
127<!-- End Google Tag Manager (noscript) -->
128
129<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 129-130
129
130<script async src="https://www.googletagmanager.com/gtag/js?id=
130G-0S3F6MY90L
vendor: 12 bytes, line 130
130"></script>
131<script>
132  
vendor: 134 bytes, lines 132-136
132window.dataLayer = window.dataLayer || [];
133  function gtag(){dataLayer.push(arguments);}
134  gtag('js', new Date());
135
136  gtag('config', '
136G-0S3F6MY90L
vendor: 4 bytes, line 136
136');
137</script>
137
138
139
140<header class="header -splash">
141    <div class="header-bg">
142                                    <img width="1024" height="683" src="https://restaurantsmelt.nl/wp-content/uploads/2025/01/x-14-3-1024x683.jpg" class="attachment-large size-large" alt="" decoding="async" fetchpriority="high" srcset="https://restaurantsmelt.nl/wp-content/uploads/2025/01/x-14-3-1024x683.jpg 1024w, https://restaurantsmelt.nl/wp-content/uploads/2025/01/x-14-3-300x200.jpg 300w, https://restaurantsmelt.nl/wp-content/uploads/2025/01/x-14-3-768x512.jpg 768w, https://restaurantsmelt.nl/wp-content/uploads/2025/01/x-14-3-1536x1024.jpg 1536w, https://restaurantsmelt.nl/wp-content/uploads/2025/01/x-14-3-2048x1365.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" />            </div>
143    <div class="container">
144        <div class="header-top">
145    <a href="https://restaurantsmelt.nl/" class="header-top-logo">
146        <img src="https://restaurantsmelt.nl/wp-content/themes/smelt/dist/img/logo/logo.svg" alt="Restaurant Smelt logo">
147    </a>
148    <div class="header-top-location">
149        <div class="header-top-location-trigger">
150            Kies een locatie        </div>
151        <ul class="header-top-location-list">
152                                                                                            <li>
153                            <a href="https://restaurantsmelt.nl/9-straatjes/" target="">Amsterdam, 9 straatjes</a>
154                        </li>
155                                                                                                    <li>
156                            <a href="https://restaurantsmelt.nl/korte-putstraat/" target="">&#039;s-Hertogenbosch, Korte Putstraat</a>
157                        </li>
158                                                                                                    <li>
159                            <a href="https://restaurantsmelt.nl/breda/" target="">Breda, Boschstraat</a>
160                        </li>
161                                                        </ul>
162    </div>
163        <div class="header-top-location header-top-location-menu">
164        <div class="header-top-location-trigger">
165            Navigeer        </div>
166        <ul class="header-top-location-list">
167                                                            <li>
168                        <a href="https://restaurantsmelt.nl/zakelijk/" target="">Zakelijk</a>
169                    </li>
170                	                                                        <li>
171                        <a href="https://restaurantsmelt.nl/contact/" target="">Contact</a>
172                    </li>
173                	                </ul>
174    </div>
175        <ul class="header-top-language">
176        <li><a href="https://restaurantsmelt.nl/en/">EN</a></li>    </ul>
177</div>        <div class="header-info">
178            <h1>
179                Welkom thuis<br />
180in Restaurant Smelt            </h1>
181                        <ul class="header-splash">
182                                <li>
183                    <div class="header-splash-title">
184                        Amsterdam                    </div>
185                                        <div class="header-splash-actions">
186                                                                                                                        <a href="https://restaurantsmelt.nl/amsterdam/" class="btn -accent">
187                            <svg>
188                                <use xlink:href="https://restaurantsmelt.nl/wp-content/themes/smelt/dist/img/svgsprite/svgsprite.svg#pin"></use>
189                            </svg>
190                            9 straatjes                        </a>
191                                                                    </div>
192                                    </li>
193                                <li>
194                    <div class="header-splash-title">
195                        's-Hertogenbosch                    </div>
196                                        <div class="header-splash-actions">
197                                                                                                                        <a href="https://restaurantsmelt.nl/korte-putstraat/" class="btn -accent">
198                            <svg>
199                                <use xlink:href="https://restaurantsmelt.nl/wp-content/themes/smelt/dist/img/svgsprite/svgsprite.svg#pin"></use>
200                            </svg>
201                            Korte Putstraat                        </a>
202                                                                    </div>
203                                    </li>
204                                <li>
205                    <div class="header-splash-title">
206                        Breda                    </div>
207                                        <div class="header-splash-actions">
208                                                                                                                        <a href="https://restaurantsmelt.nl/breda/" class="btn -accent">
209                            <svg>
210                                <use xlink:href="https://restaurantsmelt.nl/wp-content/themes/smelt/dist/img/svgsprite/svgsprite.svg#pin"></use>
211                            </svg>
212                            Boschstraat                        </a>
213                                                                    </div>
214                                    </li>
215                            </ul>
216                                                <div class="header-partners">
217                                <div class="header-partners-title">
218                    Geniet ook van Smelt fondue in:                </div>
219                                <ul class="header-splash">
220                                                            <li>
221                        <div class="header-splash-title">
222                            Nijmegen (v.a. 1 okt)                        </div>
223                        <div class="header-splash-actions">
224                            <a href="https://zottelemke.nl/" target="_blank" rel="noopener" class="btn -outline">
225                                <svg>
226                                    <use xlink:href="https://restaurantsmelt.nl/wp-content/themes/smelt/dist/img/svgsprite/svgsprite.svg#pin"></use>
227                                </svg>
228                                't Zotte Lemke                            </a>
229                        </div>
230                    </li>
231                                                            <li>
232                        <div class="header-splash-title">
233                            Eindhoven (5-15 nov)                        </div>
234                        <div class="header-splash-actions">
235                            <a href="https://www.hetfondueatelier.nl/" target="_blank" rel="noopener" class="btn -outline">
236                                <svg>
237                                    <use xlink:href="https://restaurantsmelt.nl/wp-content/themes/smelt/dist/img/svgsprite/svgsprite.svg#pin"></use>
238                                </svg>
239                                Fondue Atelier                            </a>
240                        </div>
241                    </li>
242                                                            <li>
243                        <div class="header-splash-title">
244                            Dordrecht                        </div>
245                        <div class="header-splash-actions">
246                            <a href="https://cbc38.nl/" target="_blank" rel="noopener" class="btn -outline">
247                                <svg>
248                                    <use xlink:href="https://restaurantsmelt.nl/wp-content/themes/smelt/dist/img/svgsprite/svgsprite.svg#pin"></use>
249                                </svg>
250                                No.38 City Bakery Café                            </a>
251                        </div>
252                    </li>
253                                    </ul>
254            </div>
255                    </div>
256    </div>
257</header>
258
259
260        <!-- Meta Pixel Event Code -->
261        
261<script type='text/javascript'>
262        (function () {
263            function runPixelCode( response ) {
264                if ( ! response || ! response.data || ! response.data.fb_pxl_code ) {
265                    return;
266                }
267
268                try {
269                    new Function( response.data.fb_pxl_code )();
270                } catch ( e ) {
271                    console && console.warn
272                        && console.warn( 'Meta Pixel response parsing failed. Please check if your pixel is connected.', e );
273                }
274            }
275
276            var radio = window.nfRadio
277                || ( window.Backbone && window.Backbone.Radio );
278            if ( radio && radio.channel ) {
279                radio.channel( 'forms' ).on( 'submit:response', runPixelCode );
280            }
281
282            if ( window.jQuery ) {
283                window.jQuery( document ).on(
284                    'nfFormSubmitResponse',
285                    function ( event, data ) {
286                        if ( data && data.response ) {
287                            runPixelCode( data.response );
288                        }
289                    }
290                );
291            }
292        })();
293        </script>
293
294        <!-- End Meta Pixel Event Code -->
295                <!-- Meta Pixel Event Code -->
296        
296<script type='text/javascript'>
297        (function ( $ ) {
298            if ( ! $ || typeof document === 'undefined' ) {
299                return;
300            }
301            // WPForms triggers this jQuery event and passes the AJAX response object.
302            $( document ).on( 'wpformsAjaxSubmitSuccess', function ( event, data ) {
303                if ( data && data.data && data.data.fb_pxl_code ) {
304                    try {
305                        new Function( data.data.fb_pxl_code )();
306                    } catch ( e ) {
307                        console && console.warn && console.warn( 'Meta Pixel eval failed', e );
308                    }
309                }
310            } );
311        })( window.jQuery );
312        </script>
312
313        <!-- End Meta Pixel Event Code -->
314        
314<script type="speculationrules">
315{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/smelt/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
316</script>
316
317    <!-- Meta Pixel Event Code -->
318    
318<script type='text/javascript'>
319        document.addEventListener( 'wpcf7mailsent', function( event ) {
320        if( "fb_pxl_code" in event.detail.apiResponse){
321            eval(event.detail.apiResponse.fb_pxl_code);
322        }
323        }, false );
324    </script>
324
325    <!-- End Meta Pixel Event Code -->
326        <div id="fb-pxl-ajax-code"></div><!-- Instagram Feed JS -->
327<script type="text/javascript">
328var sbiajaxurl = "https://restaurantsmelt.nl/wp-admin/admin-ajax.php";
329</script>
vendor: 2 bytes, line 329
329
330<script id="app-js-js" src="https://restaurantsmelt.nl/wp-content/themes/smelt/dist/js/index.js?ver=1.0"></script>
vendor: 1 bytes, line 330
330
331<script id="seoaiwp-form-tracking-js-extra">
332var SeoaiwpConversionConfig = {"enabled":"","tagId":"","label":""};
333//# sourceURL=seoaiwp-form-tracking-js-extra
334</script>
vendor: 1 bytes, line 334
334
335<script id="seoaiwp-form-tracking-js-after">
336/**
337 * WordPress & HubSpot Form Events → GTM dataLayer + GA4 gtag
338 *
339 * Listens for successful form submissions from popular WordPress form
340 * plugins and HubSpot forms, then pushes events to both window.dataLayer
341 * (GTM) and gtag (GA4 direct).
342 *
343 * Also tracks clicks on tel: and mailto: links.
344 *
345 * Supported: CF7, Gravity Forms, WPForms, Forminator, Formidable,
346 * Ninja Forms, Fluent Forms, WS Form, Elementor Forms, Enfold (Avia),
347 * HubSpot Forms v3, HubSpot Forms v4, Pipedrive LeadBooster, Leadoo
348 */
349
350// ── IE11 closest() polyfill ───────────────────────────────────────
351
352if (!Element.prototype.closest) {
353    Element.prototype.closest = function (s) {
354        var el = this;
355        do {
356            if (el.matches(s)) return el;
357            el = el.parentElement || el.parentNode;
358        } while (el !== null && el.nodeType === 1);
359        return null;
360    };
361}
362
363(function () {
364    'use strict';
365
366    window.dataLayer = window.dataLayer || [];
367
368    // ── helpers ──────────────────────────────────────────────────
369
370    // Fires a Google Ads conversion event using values from SeoaiwpConversionConfig
371    // (injected via wp_localize_script from WPSEOAI → Settings → SEA).
372    function fireGoogleAdsConversion() {
373        var cfg = window.SeoaiwpConversionConfig;
374        if (!cfg || !cfg.enabled || !cfg.tagId || !cfg.label) return;
375        if (typeof gtag !== 'function') return;
376
377        gtag('event', 'conversion', {
378            send_to: 'AW-' + cfg.tagId + '/' + cfg.label
379        });
380    }
381
382    function pushEvent(formPlugin, formId, formElement, extraData) {
383        var submitBtn = formElement
384            ? formElement.querySelector('[type="submit"]')
385            : null;
386
387        var submitText = '';
388        if (submitBtn) {
389            submitText = submitBtn.tagName === 'INPUT'
390                ? submitBtn.value
391                : submitBtn.textContent.trim();
392        }
393
394        var basePayload = {
395            event:      'wpseoai_form_submission',
396            formPlugin: formPlugin,
397            formId:     formId || '',
398            formClass:  formElement ? (formElement.className || '') : '',
399            submitText: submitText,
400            pageUrl:    window.location.href,
401            pageTitle:  document.title
402        };
403
404        if (extraData) {
405            Object.keys(extraData).forEach(function (key) {
406                basePayload[key] = extraData[key];
407            });
408        }
409
410        // ── GTM dataLayer push ───────────────────────────────────
411
412        window.dataLayer.push(basePayload);
413
414        // ── GA4 gtag direct ──────────────────────────────────────
415
416        if (typeof gtag === 'function') {
417            var gtagPayload = {};
418            Object.keys(basePayload).forEach(function (key) {
419                if (key !== 'event') gtagPayload[key] = basePayload[key];
420            });
421            gtag('event', 'wpseoai_form_submission', gtagPayload);
422        }
423
424        // ── Google Ads conversion ────────────────────────────────
425
426        fireGoogleAdsConversion();
427    }
428
429    function pushLinkClick(eventName, linkType, href, linkText) {
430        var payload = {
431            event:     eventName,
432            linkType:  linkType,
433            linkHref:  href,
434            linkText:  linkText,
435            pageUrl:   window.location.href,
436            pageTitle: document.title
437        };
438
439        window.dataLayer.push(payload);
440
441        if (typeof gtag === 'function') {
442            gtag('event', eventName, {
443                link_type:  linkType,
444                link_href:  href,
445                link_text:  linkText,
446                page_url:   window.location.href,
447                page_title: document.title
448            });
449        }
450
451        // ── Google Ads conversion ────────────────────────────────
452
453        fireGoogleAdsConversion();
454    }
455
456    // ── 1. Contact Form 7 ───────────────────────────────────────
457
458    document.addEventListener('wpcf7mailsent', function (event) {
459        var formId = event.detail.contactFormId;
460        pushEvent('cf7', formId, event.target);
461    }, false);
462
463    // ── 2. Gravity Forms ────────────────────────────────────────
464    //
465    // Three confirmation types need separate handling:
466    //   a) AJAX text confirmation  → 'gform_confirmation_loaded' fires
467    //   b) Non-AJAX page reload    → '.gform_confirmation_message' present on load
468    //   c) Page redirect           → track before redirect via 'gform_pre_submission'
469
470    var gfTrackedForms = {};
471
472    jQuery(function ($) {
473
474        // (a) AJAX text/message confirmation
475        $(document).on('gform_confirmation_loaded', function (event, formId) {
476            if (gfTrackedForms['conf_' + formId]) return;
477            gfTrackedForms['conf_' + formId] = true;
478
479            var formEl = document.getElementById('gform_' + formId) ||
480                document.querySelector('#gform_wrapper_' + formId + ' form');
481            pushEvent('gravity_forms', formId, formEl);
482        });
483
484        // (b) Non-AJAX page reload — confirmation message rendered server-side
485        $('.gform_confirmation_message').each(function () {
486            var wrapper = $(this).closest('.gform_wrapper');
487            var formId = (wrapper.attr('id') || '').replace('gform_wrapper_', '');
488            if (formId && !gfTrackedForms['conf_' + formId]) {
489                gfTrackedForms['conf_' + formId] = true;
490                pushEvent('gravity_forms', formId, null);
491            }
492        });
493
494        // (c) Redirect confirmation — capture before the browser navigates away
495        if (typeof gform !== 'undefined' && typeof gform.addAction === 'function') {
496            gform.addAction('gform_pre_submission', function (formEl) {
497                var formId = formEl ? formEl.getAttribute('id') : '';
498                formId = formId.replace('gform_', '');
499                if (formId) {
500                    pushEvent('gravity_forms', formId, formEl);
501                    gfTrackedForms['conf_' + formId] = true;
502                }
503            });
504        }
505
506        // ── 3. WPForms ─────────────────────────────────────────
507
508        $(document).on('wpformsAjaxSubmitSuccess', 'form.wpforms-form', function (event) {
509            var formId = $(event.target).attr('data-formid');
510            pushEvent('wpforms', formId, event.target);
511        });
512
513        // ── 4. Forminator ──────────────────────────────────────
514
515        $(document).on('forminator:form:submit:success', function (event) {
516            var formId = $(event.target).find('input[name="form_id"]').val();
517            pushEvent('forminator', formId, event.target);
518        });
519
520        // ── 5. Formidable Forms ────────────────────────────────
521        //   a) AJAX → frmFormComplete fires
522        //   b) Non-AJAX page reload → .frm_message present on load
523
524        var frmTrackedForms = {};
525
526        $(document).on('frmFormComplete', function (event, form) {
527            var formId = $(form).find('input[name="form_id"]').val();
528            if (formId) frmTrackedForms['frm_' + formId] = true;
529            pushEvent('formidable', formId, form);
530        });
531
532        // Non-AJAX: detect success message rendered after page reload
533        $('.frm_message').each(function () {
534            var wrapper = $(this).closest('.frm_forms');
535            var formId = wrapper.find('input[name="form_id"]').val() ||
536                (wrapper.attr('id') || '').replace('frm_form_', '').replace('_container', '');
537            if (formId && !frmTrackedForms['frm_' + formId]) {
538                frmTrackedForms['frm_' + formId] = true;
539                pushEvent('formidable', formId, wrapper.find('form')[0] || null);
540            }
541        });
542
543        // ── 6. Ninja Forms ─────────────────────────────────────
544
545        if ($.fn.onFirst) {
546            $(document).onFirst('nfFormSubmitResponse', function (event, data) {
547                var formId = data.response.data.form_id;
548                pushEvent('ninja_forms', formId, event.target);
549            });
550        } else {
551            $(document).on('nfFormSubmitResponse', function (event, data) {
552                var formId = data.response.data.form_id;
553                pushEvent('ninja_forms', formId, event.target);
554            });
555        }
556
557        // ── 7. Fluent Forms ────────────────────────────────────
558
559        $(document).on('fluentform_submission_success', function (event, data) {
560            if (!data || !data.form) return;
561            var formId = data.config.id;
562            pushEvent('fluent_forms', formId, data.form[0] || event.target);
563        });
564
565        // ── 8. WS Form ────────────────────────────────────────
566
567        $(document).on('wsf-submit-complete', function (event, formObject, formId) {
568            pushEvent('ws_form', formId, event.target);
569        });
570
571        // ── 9. Elementor Forms ─────────────────────────────────
572
573        function observeElementorForm(form) {
574            var observer = new MutationObserver(function (mutations) {
575                for (var i = 0; i < mutations.length; i++) {
576                    if (form.querySelector('.elementor-message-success')) {
577                        var formId = form.getAttribute('id') ||
578                            (form.querySelector('input[name="form_id"]') || {}).value || '';
579                        pushEvent('elementor_form', formId, form);
580                        observer.disconnect();
581                        return;
582                    }
583                }
584            });
585
586            observer.observe(form, {
587                attributes: true,
588                childList:  true,
589                subtree:    true
590            });
591        }
592
593        // existing forms on page
594        document.querySelectorAll('.elementor-form').forEach(function (form) {
595            observeElementorForm(form);
596        });
597
598        // forms inside Elementor popups (loaded dynamically)
599        var popupObserver = new MutationObserver(function (mutationsList) {
600            for (var i = 0; i < mutationsList.length; i++) {
601                var popupForm = document.querySelector('[class*="elementor-popup"] form');
602                if (popupForm) {
603                    observeElementorForm(popupForm);
604                    popupObserver.disconnect();
605                    break;
606                }
607            }
608        });
609        popupObserver.observe(document.body, { childList: true, subtree: true });
610
611        // ── 10. Enfold (Avia) Contact Forms ───────────────────────
612        //
613        // Enfold forms submit via AJAX and do not fire custom JS events.
614        // On success the form slides up and the response container
615        // (#ajaxresponse_{id}) becomes visible with an .avia-form-success heading.
616        // We use a MutationObserver to detect this DOM change.
617
618        var enfoldTracked = {};
619
620        function observeEnfoldResponse(responseEl) {
621            var observer = new MutationObserver(function () {
622                if (responseEl.classList.contains('hidden') ||
623                    responseEl.style.display === 'none') {
624                    return;
625                }
626
627                if (!responseEl.querySelector('.avia-form-success')) {
628                    return;
629                }
630
631                var formId = (responseEl.id || '').replace('ajaxresponse_', '');
632                if (enfoldTracked[formId]) return;
633                enfoldTracked[formId] = true;
634
635                var formEl = responseEl.parentElement
636                    ? responseEl.parentElement.querySelector('form.avia_ajax_form') ||
637                    responseEl.parentElement.querySelector('form.ajax_form')
638                    : null;
639
640                pushEvent('enfold', formId, formEl);
641                observer.disconnect();
642            });
643
644            observer.observe(responseEl, {
645                attributes:      true,
646                attributeFilter: ['class', 'style'],
647                childList:       true,
648                subtree:         true
649            });
650        }
651
652        document.querySelectorAll('.ajaxresponse').forEach(function (el) {
653            observeEnfoldResponse(el);
654        });
655
656    });
657
658    // ── 11. HubSpot Forms v3 ───────────────────────────────────
659    //
660    // v3 forms communicate via window.postMessage. On success the
661    // message payload carries the form ID, conversion ID, and field values.
662
663    window.addEventListener('message', function (event) {
664        if (event.data.type === 'hsFormCallback' &&
665            event.data.eventName === 'onFormSubmitted') {
666
667            pushEvent(
668                'hubspot_v3',
669                event.data.id,
670                null,
671                {
672                    conversion_id: event.data.data.conversionId
673                }
674            );
675        }
676    });
677
678    // ── 12. HubSpot Forms v4 ───────────────────────────────────
679    //
680    // v4 forms fire a custom DOM event. Field values are fetched
681    // asynchronously via the HubspotFormsV4 API.
682
683    window.addEventListener('hs-form-event:on-submission:success', function (event) {
684        if (typeof HubspotFormsV4 === 'undefined') return;
685
686        var hsForm = HubspotFormsV4.getFormFromEvent(event);
687        if (!hsForm) return;
688
689        pushEvent(
690            'hubspot_v4',
691            hsForm.getFormId(),
692            null,
693            {
694                conversion_id: hsForm.getConversionId()
695            }
696        );
697    });
698
699    // ── 13. Lead form submissions ─────────────────────────────
700    //
701    // Lead forms dispatch a custom 'wpseoai:lead_form_submit' event on
702    // successful submission. The event detail may carry formId and any
703    // additional metadata the form wishes to surface.
704
705    document.addEventListener('wpseoai:lead_form_submit', function (event) {
706        pushEvent('wpseoai_lead_form', '', null);
707    }, false);
708
709    // ── 14. Pipedrive LeadBooster Forms ──────────────────────────
710    //
711    // Pipedrive forms are embedded as iframes and post a message to the
712    // parent window on submission. The payload includes formUUID which
713    // serves as the form identifier.
714
715    window.addEventListener('message', function (event) {
716        var data = event.data;
717        if (!data || data.event !== 'pipedrive_form_submit') return;
718
719        pushEvent('pipedrive', data.formUUID || '', null, null);
720    });
721
722    // ── 15. Leadoo ────────────────────────────────────────────────
723    //
724    // Leadoo pushes a { event: 'LEAD' } object to window.dataLayer on
725    // form submission. We wrap dataLayer.push to intercept it.
726    // The _busy guard prevents re-entrancy from our own pushEvent calls.
727
728    (function () {
729        var dl = window.dataLayer;
730        if (!dl || typeof dl.push !== 'function') return;
731
732        var _orig = dl.push.bind(dl);
733        var _busy = false;
734
735        dl.push = function () {
736            if (!_busy) {
737                for (var i = 0; i < arguments.length; i++) {
738                    var item = arguments[i];
739                    if (item && typeof item === 'object' && item.event === 'LEAD') {
740                        _busy = true;
741                        try {
742                            pushEvent('leadoo', '', null, null);
743                        } finally {
744                            _busy = false;
745                        }
746                    }
747                }
748            }
749            return _orig.apply(null, arguments);
750        };
751    }());
752
753    // ── 16. tel: and mailto: link clicks ──────────────────────
754    //
755    // Uses event delegation on document so dynamically injected links
756    // (popups, live chat widgets, etc.) are captured without re-binding.
757    // closest() walks up the DOM in case the click lands on a child
758    // element inside the anchor (e.g. an icon or span).
759    // hrefLower handles uppercase protocol variants (e.g. TEL:, MAILTO:).
760
761    document.addEventListener('click', function (event) {
762        var anchor = event.target.closest('a[href]');
763        if (!anchor) return;
764
765        var href = anchor.getAttribute('href') || '';
766        var hrefLower = href.toLowerCase();
767        var linkText = anchor.textContent.trim();
768
769        if (hrefLower.indexOf('tel:') === 0) {
770            pushLinkClick('wpseoai_tel_click', 'tel', href.slice(4), linkText);
771        } else if (hrefLower.indexOf('mailto:') === 0) {
772            pushLinkClick('wpseoai_mail_click', 'mailto', href.slice(7), linkText);
773        }
774    }, false);
775
776})();
777
778//# sourceURL=seoaiwp-form-tracking-js-after
779</script>
vendor: 1 bytes, line 779
779
780<script id="seoaiwp-link-tracking-js-after">
781/**
782 * Link click tracking → GTM dataLayer + GA4 gtag
783 *
784 * Delegated click listener that fires a `wpseoai_link_click` event to window.dataLayer
785 * (GTM) and, when present, gtag (GA4) whenever a visitor clicks an http(s) link. The
786 * event carries `linkHref`, the origin and path the link leads to — no query string, so
787 * a token or an address in one never reaches the analytics account. Independent of form
788 * tracking, with its own enable toggle. tel:/mailto: intent links stay with the
789 * form-tracking script. Add data-wpseoai-no-track to a link to exclude it.
790 */
791
792// ── IE11 matches()/closest() polyfills ────────────────────────────
793// closest() below relies on matches(); IE11 exposes it only as msMatchesSelector.
794
795if (!Element.prototype.matches) {
796    Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
797}
798
799if (!Element.prototype.closest) {
800    Element.prototype.closest = function (s) {
801        var el = this;
802        do {
803            if (el.matches(s)) return el;
804            el = el.parentElement || el.parentNode;
805        } while (el !== null && el.nodeType === 1);
806        return null;
807    };
808}
809
810(function () {
811    'use strict';
812
813    window.dataLayer = window.dataLayer || [];
814
815    // GTM reads the dataLayer key, GA4 reads the gtag parameter, and the two name it
816    // differently — snake_case is what GA4 accepts as an event parameter. The names match
817    // the tel:/mailto: events in the form tracking script, which carry a URL under the same.
818    function pushLinkClick(linkHref) {
819        window.dataLayer.push({ event: 'wpseoai_link_click', linkHref: linkHref });
820
821        if (typeof gtag === 'function') {
822            gtag('event', 'wpseoai_link_click', { link_href: linkHref });
823        }
824    }
825
826    // Event delegation on document so dynamically injected links (popups,
827    // widgets) are captured without re-binding. closest() walks up in case the
828    // click lands on a child element inside the anchor (icon/span). Bound to
829    // both `click` (primary/keyboard) and `auxclick` (middle button opens a new
830    // tab); on auxclick only the middle button (1) counts, never right-click.
831    function handleLinkClick(event) {
832        if (event.type === 'auxclick' && event.button !== 1) return;
833
834        var anchor = event.target.closest('a[href]');
835        if (!anchor) return;
836
837        // Explicit opt-out for links that should never be tracked.
838        if (anchor.hasAttribute('data-wpseoai-no-track')) return;
839
840        var href = anchor.getAttribute('href') || '';
841
842        // Skip empty hrefs and in-page anchors. tel:, mailto:, javascript: and other
843        // non-web schemes are excluded by the http(s) check below (tel:/mailto: keep
844        // their own events in the form-tracking script).
845        if (href === '' || href.charAt(0) === '#') {
846            return;
847        }
848
849        if (anchor.protocol !== 'http:' && anchor.protocol !== 'https:') {
850            return;
851        }
852
853        // Origin and path only. A query string can carry a reset token, an unsubscribe 
853key
854        // or an address, and GA4's own query redaction does not reach a custom parameter.
855        // Built from the parts rather than anchor.origin, which IE11 does not implement;
856        // its pathname also omits the leading slash, hence the guard.
857        var path = anchor.pathname || '';
858
859        if (path.charAt(0) !== '/') {
860            path = '/' + path;
861        }
862
863        pushLinkClick(anchor.protocol + '//' + anchor.host + path);
864    }
865
866    document.addEventListener('click', handleLinkClick, false);
867    document.addEventListener('auxclick', handleLinkClick, false);
868
869})();
870
871//# sourceURL=seoaiwp-link-tracking-js-after
872</script>
vendor: 1 bytes, line 872
872
873<script id="wp-emoji-settings" type="application/json">
874{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://restaurantsmelt.nl/wp-includes/js/wp-emoji-release.min.js?ver=7.1.3"}}
875</script>
vendor: 1 bytes, line 875
875
876<script type="module">
877/*! This file is auto-generated */
878var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
879//# sourceURL=https://restaurantsmelt.nl/wp-includes/js/wp-emoji-loader.min.js
880</script>
880
881</body>
882</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.