{"id":9397,"date":"2026-01-27T13:45:32","date_gmt":"2026-01-27T13:45:32","guid":{"rendered":"https:\/\/adaptoo.nl\/?page_id=9397"},"modified":"2026-01-27T15:20:55","modified_gmt":"2026-01-27T15:20:55","slug":"keyword-match-type-tool","status":"publish","type":"page","link":"https:\/\/adaptoo.nl\/en\/keyword-match-type-tool\/","title":{"rendered":"Keyword Match Type Tool"},"content":{"rendered":"<!-- Adaptoo Keyword Match Type Tool Widget -->\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;600;700&#038;family=Fira+Sans:wght@400;500&#038;display=swap\" rel=\"stylesheet\">\n<div id=\"adaptoo-kw-tool\">\n  <style>\n\n    #adaptoo-kw-tool {\n      --kw-teal: #1f3d4d;\n      --kw-teal-light: #2a5268;\n      --kw-teal-glow: rgba(31,61,77,0.12);\n      --kw-yellow: #ffcc00;\n      --kw-yellow-hover: #e6b800;\n      --kw-yellow-soft: rgba(255,204,0,0.10);\n      --kw-white: #ffffff;\n      --kw-gray-50: #f8f9fb;\n      --kw-gray-100: #eef0f4;\n      --kw-gray-200: #dfe2e8;\n      --kw-gray-300: #c5c9d3;\n      --kw-gray-400: #9ca3af;\n      --kw-gray-500: #6b7280;\n      --kw-gray-700: #2d3748;\n      --kw-radius: 12px;\n      --kw-radius-sm: 8px;\n      font-family: 'Fira Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n      color: var(--kw-gray-700);\n      max-width: 1140px;\n      margin: 0 auto;\n      box-sizing: border-box;\n    }\n\n    #adaptoo-kw-tool *, #adaptoo-kw-tool *::before, #adaptoo-kw-tool *::after {\n      box-sizing: border-box;\n    }\n\n    \/* ---- HEADER ---- *\/\n    #adaptoo-kw-tool .kw-header {\n      margin-bottom: 24px;\n    }\n\n    #adaptoo-kw-tool .kw-title {\n      font-family: 'Poppins', sans-serif;\n      font-size: 26px;\n      font-weight: 700;\n      color: var(--kw-teal);\n      line-height: 1.2;\n    }\n\n    #adaptoo-kw-tool .kw-title span { color: var(--kw-yellow); }\n\n    #adaptoo-kw-tool .kw-sub {\n      font-size: 14px;\n      color: var(--kw-gray-500);\n      margin-top: 4px;\n      line-height: 1.4;\n    }\n\n    \/* ---- CARD ---- *\/\n    #adaptoo-kw-tool .kw-card {\n      background: var(--kw-white);\n      border-radius: 16px;\n      box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 4px 16px rgba(0,0,0,0.06);\n      padding: 28px;\n      border: 1px solid var(--kw-gray-100);\n    }\n\n    \/* ---- GRID ---- *\/\n    #adaptoo-kw-tool .kw-grid {\n      display: grid;\n      grid-template-columns: 1fr 1fr 1fr 270px;\n      gap: 18px;\n    }\n\n    #adaptoo-kw-tool .kw-col-label {\n      font-family: 'Poppins', sans-serif;\n      font-size: 11px;\n      font-weight: 600;\n      text-transform: uppercase;\n      letter-spacing: 0.8px;\n      color: var(--kw-gray-400);\n      margin-bottom: 8px;\n    }\n\n    #adaptoo-kw-tool .kw-grid textarea {\n      width: 100%;\n      min-height: 210px;\n      padding: 14px 16px;\n      border: 1.5px solid var(--kw-gray-200);\n      border-radius: var(--kw-radius);\n      font-size: 14px;\n      font-family: 'Fira Sans', sans-serif;\n      resize: vertical;\n      background: var(--kw-gray-50);\n      color: var(--kw-gray-700);\n      transition: all 0.2s ease;\n      line-height: 1.6;\n    }\n\n    #adaptoo-kw-tool .kw-grid textarea:hover {\n      border-color: var(--kw-gray-300);\n    }\n\n    #adaptoo-kw-tool .kw-grid textarea:focus {\n      outline: none;\n      border-color: var(--kw-teal);\n      background: var(--kw-white);\n      box-shadow: 0 0 0 4px var(--kw-teal-glow);\n    }\n\n    #adaptoo-kw-tool .kw-grid textarea::placeholder {\n      color: var(--kw-gray-300);\n    }\n\n    \/* ---- OPTIONS PANEL ---- *\/\n    #adaptoo-kw-tool .kw-options {\n      background: var(--kw-gray-50);\n      border-radius: var(--kw-radius);\n      padding: 20px;\n      border: 1px solid var(--kw-gray-100);\n      display: flex;\n      flex-direction: column;\n    }\n\n    #adaptoo-kw-tool .kw-options h3 {\n      font-family: 'Poppins', sans-serif;\n      font-size: 10px;\n      font-weight: 700;\n      text-transform: uppercase;\n      letter-spacing: 1px;\n      color: var(--kw-teal);\n      margin-bottom: 10px;\n    }\n\n    #adaptoo-kw-tool .kw-options label {\n      display: flex;\n      align-items: center;\n      gap: 10px;\n      font-size: 13.5px;\n      color: var(--kw-gray-700);\n      cursor: pointer;\n      margin-bottom: 4px;\n      padding: 4px 6px;\n      border-radius: 6px;\n      transition: background 0.15s;\n      user-select: none;\n    }\n\n    #adaptoo-kw-tool .kw-options label:hover {\n      background: var(--kw-gray-100);\n    }\n\n    #adaptoo-kw-tool .kw-options input[type=\"radio\"],\n    #adaptoo-kw-tool .kw-options input[type=\"checkbox\"] {\n      accent-color: var(--kw-teal);\n      cursor: pointer;\n      width: 16px;\n      height: 16px;\n      flex-shrink: 0;\n    }\n\n    #adaptoo-kw-tool .kw-sep-group { margin-bottom: 18px; }\n    #adaptoo-kw-tool .kw-match-group { margin-bottom: 18px; flex: 1; }\n\n    #adaptoo-kw-tool .kw-divider {\n      height: 1px;\n      background: var(--kw-gray-200);\n      margin: 6px 0;\n    }\n\n    \/* ---- BUTTONS ---- *\/\n    #adaptoo-kw-tool .kw-btn-row {\n      display: flex;\n      gap: 10px;\n    }\n\n    #adaptoo-kw-tool .kw-btn {\n      flex: 1;\n      padding: 12px 20px;\n      border: none;\n      border-radius: var(--kw-radius-sm);\n      font-family: 'Poppins', sans-serif;\n      font-size: 13.5px;\n      font-weight: 600;\n      cursor: pointer;\n      transition: all 0.2s ease;\n      text-align: center;\n    }\n\n    #adaptoo-kw-tool .kw-btn:active { transform: scale(0.96); }\n\n    #adaptoo-kw-tool .kw-btn-primary {\n      background: linear-gradient(135deg, var(--kw-yellow), var(--kw-yellow-hover));\n      color: var(--kw-teal);\n      box-shadow: 0 2px 8px rgba(255,204,0,0.3);\n    }\n\n    #adaptoo-kw-tool .kw-btn-primary:hover {\n      box-shadow: 0 4px 14px rgba(255,204,0,0.4);\n      transform: translateY(-1px);\n    }\n\n    #adaptoo-kw-tool .kw-btn-secondary {\n      background: var(--kw-white);\n      color: var(--kw-gray-500);\n      border: 1.5px solid var(--kw-gray-200);\n    }\n\n    #adaptoo-kw-tool .kw-btn-secondary:hover {\n      border-color: var(--kw-gray-300);\n      color: var(--kw-gray-700);\n    }\n\n    \/* ---- RESULTS ---- *\/\n    #adaptoo-kw-tool .kw-results {\n      display: flex;\n      gap: 16px;\n      margin-top: 20px;\n      align-items: stretch;\n    }\n\n    #adaptoo-kw-tool .kw-results textarea {\n      flex: 1;\n      min-height: 140px;\n      padding: 14px 16px;\n      border: 1.5px solid var(--kw-gray-200);\n      border-radius: var(--kw-radius);\n      font-size: 14px;\n      font-family: 'Fira Sans', sans-serif;\n      resize: vertical;\n      background: var(--kw-gray-50);\n      color: var(--kw-gray-700);\n      line-height: 1.6;\n      transition: border-color 0.2s;\n    }\n\n    #adaptoo-kw-tool .kw-results textarea:focus {\n      outline: none;\n      border-color: var(--kw-teal);\n    }\n\n    #adaptoo-kw-tool .kw-results textarea::placeholder { color: var(--kw-gray-300); }\n\n    #adaptoo-kw-tool .kw-copy-btn {\n      flex: 0 0 200px;\n      background: linear-gradient(135deg, var(--kw-teal), var(--kw-teal-light));\n      color: var(--kw-white);\n      border: none;\n      border-radius: var(--kw-radius);\n      font-family: 'Poppins', sans-serif;\n      font-size: 16px;\n      font-weight: 600;\n      cursor: pointer;\n      transition: all 0.2s ease;\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      justify-content: center;\n      gap: 8px;\n      box-shadow: 0 4px 12px var(--kw-teal-glow);\n    }\n\n    #adaptoo-kw-tool .kw-copy-btn:hover {\n      box-shadow: 0 6px 20px rgba(31,61,77,0.2);\n      transform: translateY(-1px);\n    }\n\n    #adaptoo-kw-tool .kw-copy-btn:active { transform: scale(0.97); }\n\n    #adaptoo-kw-tool .kw-copy-btn svg {\n      width: 22px;\n      height: 22px;\n      fill: var(--kw-yellow);\n    }\n\n    \/* ---- RESPONSIVE ---- *\/\n    @media (max-width: 900px) {\n      #adaptoo-kw-tool .kw-grid { grid-template-columns: 1fr; }\n      #adaptoo-kw-tool .kw-options { padding: 16px; }\n      #adaptoo-kw-tool .kw-results { flex-direction: column; }\n      #adaptoo-kw-tool .kw-copy-btn {\n        flex: 1 1 auto;\n        min-height: 56px;\n        flex-direction: row;\n      }\n      #adaptoo-kw-tool .kw-card { padding: 18px; }\n      #adaptoo-kw-tool .kw-title { font-size: 20px; }\n      #adaptoo-kw-tool .kw-icon { width: 40px; height: 40px; }\n      #adaptoo-kw-tool .kw-icon svg { width: 20px; height: 20px; }\n    }\n\n    @media (min-width: 901px) and (max-width: 1100px) {\n      #adaptoo-kw-tool .kw-grid { grid-template-columns: 1fr 1fr 1fr; }\n      #adaptoo-kw-tool .kw-options {\n        grid-column: 1 \/ -1;\n        flex-direction: row;\n        gap: 24px;\n        align-items: flex-start;\n      }\n      #adaptoo-kw-tool .kw-sep-group,\n      #adaptoo-kw-tool .kw-match-group { margin-bottom: 0; }\n      #adaptoo-kw-tool .kw-btn-row { align-self: flex-end; flex-direction: column; }\n    }\n  <\/style>\n\n  <div class=\"kw-header\">\n    <h2 class=\"kw-title\">Keyword <span>Match Type<\/span> Tool<\/h2>\n    <p class=\"kw-sub\">Enter your keywords, choose your match types, and instantly generate a ready-made keyword list.<\/p>\n  <\/div>\n\n  <div class=\"kw-card\">\n    <div class=\"kw-grid\">\n      <div>\n        <div class=\"kw-col-label\">List A<\/div>\n        <textarea id=\"kwListA\" placeholder=\"One word per line\"><\/textarea>\n      <\/div>\n      <div>\n        <div class=\"kw-col-label\">List B<\/div>\n        <textarea id=\"kwListB\" placeholder=\"One word per line\"><\/textarea>\n      <\/div>\n      <div>\n        <div class=\"kw-col-label\">List C<\/div>\n        <textarea id=\"kwListC\" placeholder=\"One word per line\"><\/textarea>\n      <\/div>\n\n      <div class=\"kw-options\">\n        <div class=\"kw-sep-group\">\n          <h3>Separator<\/h3>\n          <label><input type=\"radio\" name=\"kwSep\" value=\" \" checked> Space<\/label>\n          <label><input type=\"radio\" name=\"kwSep\" value=\"\"> Nothing<\/label>\n          <label><input type=\"radio\" name=\"kwSep\" value=\"-\"> Dash (-)<\/label>\n        <\/div>\n\n        <div class=\"kw-match-group\">\n          <h3>Match type<\/h3>\n          <label><input type=\"checkbox\" id=\"kwSelectAll\"> Select All<\/label>\n          <div class=\"kw-divider\"><\/div>\n          <label><input type=\"checkbox\" class=\"kwMatchType\" data-type=\"broad\"> Broad match<\/label>\n          <label><input type=\"checkbox\" class=\"kwMatchType\" data-type=\"phrase\"> \u201cPhrase match\u201d<\/label>\n          <label><input type=\"checkbox\" class=\"kwMatchType\" data-type=\"exact\"> [Exact match]<\/label>\n          <div class=\"kw-divider\"><\/div>\n          <label><input type=\"checkbox\" id=\"kwLowercase\"> Lowercase letters<\/label>\n        <\/div>\n\n        <div class=\"kw-btn-row\">\n          <button class=\"kw-btn kw-btn-primary\" id=\"kwGenerate\">Generate<\/button>\n          <button class=\"kw-btn kw-btn-secondary\" id=\"kwClear\">To know<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"kw-results\">\n      <textarea id=\"kwResults\" placeholder=\"Your keywords appear here...\" readonly><\/textarea>\n      <button class=\"kw-copy-btn\" id=\"kwCopy\">\n        <svg viewbox=\"0 0 24 24\"><path d=\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z\"\/><\/svg>\n        Copy result\n      <\/button>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function() {\n      \/\/ Blokkeer rechtermuisklik\n      document.addEventListener('contextmenu', function(e) { e.preventDefault(); });\n\n      \/\/ Blokkeer DevTools sneltoetsen (F12, Ctrl+Shift+I\/J\/C, Ctrl+U)\n      document.addEventListener('keydown', function(e) {\n        if (e.key === 'F12') { e.preventDefault(); return false; }\n        if (e.ctrlKey && e.shiftKey && (e.key === 'I' || e.key === 'i' || e.key === 'J' || e.key === 'j' || e.key === 'C' || e.key === 'c')) { e.preventDefault(); return false; }\n        if (e.ctrlKey && (e.key === 'U' || e.key === 'u')) { e.preventDefault(); return false; }\n      });\n      var listA = document.getElementById('kwListA');\n      var listB = document.getElementById('kwListB');\n      var listC = document.getElementById('kwListC');\n      var results = document.getElementById('kwResults');\n      var generateBtn = document.getElementById('kwGenerate');\n      var clearBtn = document.getElementById('kwClear');\n      var copyBtn = document.getElementById('kwCopy');\n      var selectAll = document.getElementById('kwSelectAll');\n      var lowercaseCb = document.getElementById('kwLowercase');\n      var matchTypes = document.querySelectorAll('.kwMatchType');\n\n      selectAll.addEventListener('change', function() {\n        matchTypes.forEach(function(cb) { cb.checked = selectAll.checked; });\n      });\n\n      matchTypes.forEach(function(cb) {\n        cb.addEventListener('change', function() {\n          selectAll.checked = [].slice.call(matchTypes).every(function(c) { return c.checked; });\n        });\n      });\n\n      function getLines(ta) {\n        return ta.value.split('\\n').map(function(l) { return l.trim(); }).filter(function(l) { return l.length > 0; });\n      }\n\n      function combineArrays(arrays, sep) {\n        if (arrays.length === 0) return [];\n        if (arrays.length === 1) return arrays[0];\n        var result = arrays[0];\n        for (var i = 1; i < arrays.length; i++) {\n          var next = [];\n          for (var a = 0; a < result.length; a++) {\n            for (var b = 0; b < arrays[i].length; b++) {\n              next.push(result[a] + sep + arrays[i][b]);\n            }\n          }\n          result = next;\n        }\n        return result;\n      }\n\n      function applyMatch(kw, type) {\n        if (type === 'broad') return kw;\n        if (type === 'phrase') return '\"' + kw + '\"';\n        if (type === 'exact') return '[' + kw + ']';\n        return kw;\n      }\n\n      generateBtn.addEventListener('click', function() {\n        var sep = document.querySelector('input[name=\"kwSep\"]:checked').value;\n        var types = [].slice.call(matchTypes).filter(function(c) { return c.checked; }).map(function(c) { return c.getAttribute('data-type'); });\n        var toLower = lowercaseCb.checked;\n        var lists = [getLines(listA), getLines(listB), getLines(listC)].filter(function(l) { return l.length > 0; });\n\n        if (lists.length === 0) { results.value = ''; return; }\n\n        var keywords = combineArrays(lists, sep);\n        if (toLower) keywords = keywords.map(function(k) { return k.toLowerCase(); });\n\n        if (types.length === 0) { results.value = keywords.join('\\n'); return; }\n\n        var output = [];\n        for (var t = 0; t < types.length; t++) {\n          for (var k = 0; k < keywords.length; k++) {\n            output.push(applyMatch(keywords[k], types[t]));\n          }\n        }\n        results.value = output.join('\\n');\n      });\n\n      clearBtn.addEventListener('click', function() {\n        listA.value = ''; listB.value = ''; listC.value = ''; results.value = '';\n      });\n\n      copyBtn.addEventListener('click', function() {\n        if (!results.value) return;\n        navigator.clipboard.writeText(results.value).then(function() {\n          var original = copyBtn.innerHTML;\n          copyBtn.textContent = 'Gekopieerd!';\n          setTimeout(function() { copyBtn.innerHTML = original; }, 1500);\n        });\n      });\n    })();\n  <\/script>\n<\/div>\n\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"gb-container gb-container-401547f4\"><div class=\"gb-inside-container\">\n<div class=\"gb-grid-wrapper gb-grid-wrapper-fd1ab8f9\">\n<div class=\"gb-grid-column gb-grid-column-2c714224\"><div class=\"gb-container gb-container-2c714224\"><div class=\"gb-inside-container\">\n\n<h3 class=\"gb-headline gb-headline-b1976434 gb-headline-text\"><strong>Would you like a free intake interview for your company?<\/strong><\/h3>\n\n\n\n<p class=\"gb-headline gb-headline-b5f1e5ed gb-headline-text\">Get a customized marketing plan to take your website to the top.<\/p>\n\n<\/div><\/div><\/div>\n\n<div class=\"gb-grid-column gb-grid-column-1ce6c13e\"><div class=\"gb-container gb-container-1ce6c13e\"><div class=\"gb-inside-container\">\n\n<a class=\"gb-button gb-button-82e3ee51 gb-button-text\" href=\"https:\/\/adaptoo.nl\/en\/contact\/\">FREE Intake interview<\/a>\n\n<\/div><\/div><\/div>\n<\/div>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Keyword Match Type Tool Enter your keywords, choose your \u2026 <a title=\"Keyword Match Type Tool\" class=\"read-more\" href=\"https:\/\/adaptoo.nl\/en\/keyword-match-type-tool\/\" aria-label=\"Read more about Keyword Match Type Tool\">Read more<\/a><\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-9397","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/adaptoo.nl\/en\/wp-json\/wp\/v2\/pages\/9397","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adaptoo.nl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/adaptoo.nl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/adaptoo.nl\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/adaptoo.nl\/en\/wp-json\/wp\/v2\/comments?post=9397"}],"version-history":[{"count":8,"href":"https:\/\/adaptoo.nl\/en\/wp-json\/wp\/v2\/pages\/9397\/revisions"}],"predecessor-version":[{"id":9429,"href":"https:\/\/adaptoo.nl\/en\/wp-json\/wp\/v2\/pages\/9397\/revisions\/9429"}],"wp:attachment":[{"href":"https:\/\/adaptoo.nl\/en\/wp-json\/wp\/v2\/media?parent=9397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}