{"id":1763,"date":"2024-12-28T02:04:27","date_gmt":"2024-12-28T02:04:27","guid":{"rendered":"https:\/\/donhit.com\/en\/?p=1763"},"modified":"2024-12-28T02:28:27","modified_gmt":"2024-12-28T02:28:27","slug":"keyword-position-ranking-tool","status":"publish","type":"post","link":"https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/","title":{"rendered":"Keyword Position Ranking Tool"},"content":{"rendered":"<p><center><div class=\"container123\">\r\n        <div class=\"header\">\r\n            <h2>Keyword Position Ranking<\/h2>\r\n            <p>Compare and analyze keyword positions by matching original keywords with new rankings<\/p>\r\n        <\/div>\r\n        \r\n        <div class=\"tool-container\">\r\n            <div class=\"input-grid\">\r\n                <div class=\"input-group\">\r\n                    <label for=\"originalKeywords\">Original Keywords (List A)<\/label>\r\n                    <textarea \r\n                        id=\"originalKeywords\" \r\n                        placeholder=\"Enter your original keywords list&#10;One keyword per line\"\r\n                    ><\/textarea>\r\n                <\/div>\r\n                <div class=\"input-group\">\r\n                    <label for=\"newKeywords\">New Keywords with Positions (List B)<\/label>\r\n                    <textarea \r\n                        id=\"newKeywords\" \r\n                        placeholder=\"Enter keywords with positions&#10;Format: keyword | position&#10;Example:&#10;digital marketing | 3&#10;seo services | 1\"\r\n                    ><\/textarea>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"button-group\">\r\n                <button class=\"process-btn\" onclick=\"processKeywords()\">Process Rankings<\/button>\r\n                <button class=\"clear-btn\" onclick=\"clearInputs()\">Clear All<\/button>\r\n            <\/div>\r\n\r\n            <div id=\"errorMessage\" class=\"error-message\"><\/div>\r\n\r\n            <div class=\"result-container\" style=\"display: none;\" id=\"resultContainer\">\r\n                <h3>Results<\/h3>\r\n                <div class=\"result-content\" id=\"results\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        function processKeywords() {\r\n            const originalKeywords = document.getElementById('originalKeywords').value.trim();\r\n            const newKeywordsWithPositions = document.getElementById('newKeywords').value.trim();\r\n            const errorElement = document.getElementById('errorMessage');\r\n            const resultContainer = document.getElementById('resultContainer');\r\n            const resultsElement = document.getElementById('results');\r\n\r\n            \/\/ Clear previous error messages\r\n            errorElement.textContent = '';\r\n            \r\n            \/\/ Validate inputs\r\n            if (!originalKeywords || !newKeywordsWithPositions) {\r\n                errorElement.textContent = 'Please fill in both input fields';\r\n                resultContainer.style.display = 'none';\r\n                return;\r\n            }\r\n\r\n            try {\r\n                \/\/ Parse original keywords\r\n                const originalKeywordsList = originalKeywords.split('\\n')\r\n                    .map(k => k.trim())\r\n                    .filter(k => k);\r\n\r\n                \/\/ Parse new keywords with positions\r\n                const newKeywordsMap = new Map();\r\n                const unmatchedKeywords = [];\r\n                \r\n                newKeywordsWithPositions.split('\\n')\r\n                    .map(line => line.trim())\r\n                    .filter(line => line)\r\n                    .forEach(line => {\r\n                        const parts = line.split('|').map(part => part.trim());\r\n                        if (parts.length !== 2) {\r\n                            throw new Error('Invalid format in List B. Please use: keyword | position');\r\n                        }\r\n                        const position = parseInt(parts[1]);\r\n                        if (isNaN(position)) {\r\n                            throw new Error('Invalid position number in List B');\r\n                        }\r\n                        newKeywordsMap.set(parts[0].toLowerCase(), position);\r\n                    });\r\n\r\n                \/\/ Process and format results\r\n                let output = '';\r\n                let unmatchedOutput = '';\r\n\r\n                \/\/ Process matched keywords first\r\n                originalKeywordsList.forEach(keyword => {\r\n                    const position = newKeywordsMap.get(keyword.toLowerCase());\r\n                    if (position !== undefined) {\r\n                        output += `${keyword} | ${position}\\n`;\r\n                        newKeywordsMap.delete(keyword.toLowerCase());\r\n                    } else {\r\n                        output += `${keyword} | Not found\\n`;\r\n                    }\r\n                });\r\n\r\n                \/\/ Add remaining unmatched keywords\r\n                if (newKeywordsMap.size > 0) {\r\n                    output += '\\nUnmatched Keywords:\\n';\r\n                    for (const [keyword, position] of newKeywordsMap) {\r\n                        output += `${keyword} | ${position}\\n`;\r\n                    }\r\n                }\r\n\r\n                \/\/ Display results\r\n                resultsElement.textContent = output;\r\n                resultContainer.style.display = 'block';\r\n\r\n            } catch (error) {\r\n                errorElement.textContent = error.message;\r\n                resultContainer.style.display = 'none';\r\n            }\r\n        }\r\n\r\n        function clearInputs() {\r\n            document.getElementById('originalKeywords').value = '';\r\n            document.getElementById('newKeywords').value = '';\r\n            document.getElementById('errorMessage').textContent = '';\r\n            document.getElementById('resultContainer').style.display = 'none';\r\n        }\r\n    <\/script><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[189],"tags":[],"class_list":["post-1763","post","type-post","status-publish","format-standard","hentry","category-seo"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Keyword Position Ranking Tool - DonHit<\/title>\n<meta name=\"description\" content=\"Compare and analyze keyword positions by matching original keywords with new rankings\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Keyword Position Ranking Tool - DonHit\" \/>\n<meta property=\"og:description\" content=\"Compare and analyze keyword positions by matching original keywords with new rankings\" \/>\n<meta property=\"og:url\" content=\"https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/\" \/>\n<meta property=\"og:site_name\" content=\"DonHit - World of Tools\" \/>\n<meta property=\"article:published_time\" content=\"2024-12-28T02:04:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-28T02:28:27+00:00\" \/>\n<meta name=\"author\" content=\"DonHit\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DonHit\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Keyword Position Ranking Tool - DonHit","description":"Compare and analyze keyword positions by matching original keywords with new rankings","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/","og_locale":"en_US","og_type":"article","og_title":"Keyword Position Ranking Tool - DonHit","og_description":"Compare and analyze keyword positions by matching original keywords with new rankings","og_url":"https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/","og_site_name":"DonHit - World of Tools","article_published_time":"2024-12-28T02:04:27+00:00","article_modified_time":"2024-12-28T02:28:27+00:00","author":"DonHit","twitter_card":"summary_large_image","twitter_misc":{"Written by":"DonHit","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/#article","isPartOf":{"@id":"https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/"},"author":{"name":"DonHit","@id":"https:\/\/donhit.com\/en\/#\/schema\/person\/0c6ff7dcd8ba4810c56a532f09c33148"},"headline":"Keyword Position Ranking Tool","datePublished":"2024-12-28T02:04:27+00:00","dateModified":"2024-12-28T02:28:27+00:00","mainEntityOfPage":{"@id":"https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/"},"wordCount":9,"commentCount":0,"publisher":{"@id":"https:\/\/donhit.com\/en\/#\/schema\/person\/0c6ff7dcd8ba4810c56a532f09c33148"},"articleSection":["SEO"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/","url":"https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/","name":"Keyword Position Ranking Tool - DonHit","isPartOf":{"@id":"https:\/\/donhit.com\/en\/#website"},"datePublished":"2024-12-28T02:04:27+00:00","dateModified":"2024-12-28T02:28:27+00:00","description":"Compare and analyze keyword positions by matching original keywords with new rankings","breadcrumb":{"@id":"https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/donhit.com\/en\/seo\/keyword-position-ranking-tool\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Trang ch\u1ee7","item":"https:\/\/donhit.com\/en\/"},{"@type":"ListItem","position":2,"name":"SEO","item":"https:\/\/donhit.com\/en\/category\/seo\/"},{"@type":"ListItem","position":3,"name":"Keyword Position Ranking Tool"}]},{"@type":"WebSite","@id":"https:\/\/donhit.com\/en\/#website","url":"https:\/\/donhit.com\/en\/","name":"DonHit - World of tools","description":"","publisher":{"@id":"https:\/\/donhit.com\/en\/#\/schema\/person\/0c6ff7dcd8ba4810c56a532f09c33148"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/donhit.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/donhit.com\/en\/#\/schema\/person\/0c6ff7dcd8ba4810c56a532f09c33148","name":"DonHit","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/donhit.com\/en\/#\/schema\/person\/image\/","url":"https:\/\/donhit.com\/en\/wp-content\/uploads\/2024\/11\/logo-donhit.webp","contentUrl":"https:\/\/donhit.com\/en\/wp-content\/uploads\/2024\/11\/logo-donhit.webp","width":400,"height":267,"caption":"DonHit"},"logo":{"@id":"https:\/\/donhit.com\/en\/#\/schema\/person\/image\/"},"description":"DonHit is a website designed to provide useful tools for everyone. Its primary goal is to support and empower the community. All the tools available on the site are completely free to use.","sameAs":["https:\/\/donhit.com\/en"],"url":"https:\/\/donhit.com\/en\/author\/admin_don\/"}]}},"_links":{"self":[{"href":"https:\/\/donhit.com\/en\/wp-json\/wp\/v2\/posts\/1763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/donhit.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/donhit.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/donhit.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/donhit.com\/en\/wp-json\/wp\/v2\/comments?post=1763"}],"version-history":[{"count":1,"href":"https:\/\/donhit.com\/en\/wp-json\/wp\/v2\/posts\/1763\/revisions"}],"predecessor-version":[{"id":1764,"href":"https:\/\/donhit.com\/en\/wp-json\/wp\/v2\/posts\/1763\/revisions\/1764"}],"wp:attachment":[{"href":"https:\/\/donhit.com\/en\/wp-json\/wp\/v2\/media?parent=1763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/donhit.com\/en\/wp-json\/wp\/v2\/categories?post=1763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/donhit.com\/en\/wp-json\/wp\/v2\/tags?post=1763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}