var breeze_prefetch = {"local_url":"https://topnotch-seo.com","ignore_remote_prefetch":"1","ignore_list":["wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
https://topnotch-seo.com/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js
https://topnotch-seo.com/wp-includes/js/jquery/jquery.min.js
https://topnotch-seo.com/wp-includes/js/jquery/jquery-migrate.min.js
var __CONFIG__ = {"serverTimestamp":1780666986,"currentUser":{"user_login":false,"user_email":false,"user_level":false,"user_firstname":false,"user_lastname":false,"display_name":false,"ID":0,"roles":[]}};
//# sourceURL=brizy-preview-js-before
document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
Free Robots.txt & XML Sitemap Generator
Before Google can rank your content, it needs to find it. This dual-purpose tool helps you create the two most important files for your website's foundation. Use the Robots.txt Generator to tell search engines which pages to ignore (like admin folders), and use the XML Sitemap Builder to create a map of your most valuable URLs. Just generate, copy, and upload to your root folder.
Q: Where do I upload these files?
Both files should live in the "root" folder of your website hosting (usually public_html).
- Your Robots file should be accessible at:
yourdomain.com/robots.txt - Your Sitemap should be accessible at:
yourdomain.com/sitemap.xml
Q: Why do I need a Robots.txt file?
It saves your "Crawl Budget." By telling Google not to look at useless pages (like login screens or temp files), you ensure they spend more time crawling your high-value blog posts and product pages.
// --- Tab Switching Logic ---
function switchTab(tabName) {
// Hide all contents
document.querySelectorAll('.tab-content').forEach(el => el.classList.remove('active'));
document.querySelectorAll('.tool-tab').forEach(el => el.classList.remove('active'));// Show selected
document.getElementById('tab-' + tabName).classList.add('active');
// Highlight tab button (Finding by text content is tricky, simplified by index or structure)
// Simple way: check the onclick attribute in DOM, or just toggle classes manually
const tabs = document.querySelectorAll('.tool-tab');
if(tabName === 'robots') tabs[0].classList.add('active');
else tabs[1].classList.add('active');
}// --- Robots.txt Logic ---
function generateRobots() {
const defaultAccess = document.getElementById('robot-default').value;
const disallowPaths = document.getElementById('robot-disallow').value.split('\n');
const sitemapUrl = document.getElementById('robot-sitemap').value;let output = "User-agent: *\n";if (defaultAccess === 'disallow') {
output += "Disallow: /\n";
} else {
// Add specific disallows
disallowPaths.forEach(path => {
if(path.trim() !== "") {
output += `Disallow: ${path.trim()}\n`;
}
});
}if (sitemapUrl.trim() !== "") {
output += `\nSitemap: ${sitemapUrl.trim()}`;
}document.getElementById('output-robots').innerText = output;
}// --- XML Sitemap Logic ---
function generateSitemap() {
const urls = document.getElementById('sitemap-urls').value.split('\n');
const dateInput = document.getElementById('sitemap-date').value;
let output = '<?xml version="1.0" encoding="UTF-8"?>\n';
output += '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n';urls.forEach(url => {
if(url.trim() !== "") {
output += ' <url>\n';
output += ` <loc>${url.trim()}</loc>\n`;
if(dateInput) {
output += ` <lastmod>${dateInput}</lastmod>\n`;
}
output += ' <priority>0.8</priority>\n';
output += ' </url>\n';
}
});output += '</urlset>';
// HTML Escape for display (so tags don't render)
document.getElementById('output-sitemap').innerText = output;
}// --- Helpers ---
function copyToClipboard(elementId) {
const text = document.getElementById(elementId).innerText;
navigator.clipboard.writeText(text).then(() => {
alert("Copied to clipboard!");
});
}function downloadSitemap() {
const text = document.getElementById('output-sitemap').innerText;
const blob = new Blob([text], { type: "text/xml" });
const anchor = document.createElement("a");
anchor.download = "sitemap.xml";
anchor.href = window.URL.createObjectURL(blob);
anchor.target = "_blank";
anchor.style.display = "none"; // just to be safe!
document.body.appendChild(anchor);
anchor.click();
document.body.removeChild(anchor);
}
// Init
generateSitemap();
(()=>{async function handleCredentialResponse(response){try{const res=await fetch('https://topnotch-seo.com/wp-login.php?action=googlesitekit_auth',{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:new URLSearchParams(response)});/* Preserve comment text in case of redirect after login on a page with a Sign in with Google button in the WordPress comments. */ const commentText=document.querySelector('#comment')?.value;const postId=document.querySelectorAll('.googlesitekit-sign-in-with-google__comments-form-button')?.[0]?.className?.match(/googlesitekit-sign-in-with-google__comments-form-button-postid-(\d+)/)?.[1];if(!! commentText?.length){sessionStorage.setItem(`siwg-comment-text-${postId}`,commentText);}location.reload();}catch(error){console.error(error);}}if(typeof google !=='undefined'){google.accounts.id.initialize({client_id:'437461316499-g0j6aelm5la083sl2ff31jejr7q2jpb9.apps.googleusercontent.com',callback:handleCredentialResponse,library_name:'Site-Kit'});}const defaultButtonOptions={"theme":"outline","text":"signin_with","shape":"rectangular"};document.querySelectorAll('.googlesitekit-sign-in-with-google__frontend-output-button').forEach((siwgButtonDiv)=>{const buttonOptions={shape:siwgButtonDiv.getAttribute('data-googlesitekit-siwg-shape')|| defaultButtonOptions.shape,text:siwgButtonDiv.getAttribute('data-googlesitekit-siwg-text')|| defaultButtonOptions.text,theme:siwgButtonDiv.getAttribute('data-googlesitekit-siwg-theme')|| defaultButtonOptions.theme,};if(typeof google !=='undefined'){google.accounts.id.renderButton(siwgButtonDiv,buttonOptions);}});/* If there is a matching saved comment text in sessionStorage,restore it to the comment field and remove it from sessionStorage. */ const postId=document.body.className.match(/postid-(\d+)/)?.[1];const commentField=document.querySelector('#comment');const commentText=sessionStorage.getItem(`siwg-comment-text-${postId}`);if(commentText?.length && commentField && !! postId){commentField.value=commentText;sessionStorage.removeItem(`siwg-comment-text-${postId}`);}})();
const loadScriptsTimer=setTimeout(loadScripts,5*1000);const userInteractionEvents=['click', 'mousemove', 'keydown', 'touchstart', 'touchmove', 'wheel'];userInteractionEvents.forEach(function(event){window.addEventListener(event,triggerScriptLoader,{passive:!0})});function triggerScriptLoader(){loadScripts();clearTimeout(loadScriptsTimer);userInteractionEvents.forEach(function(event){window.removeEventListener(event,triggerScriptLoader,{passive:!0})})}
function loadScripts(){document.querySelectorAll("script[data-type='lazy']").forEach(function(elem){elem.setAttribute("src",elem.getAttribute("data-src"))})}
var wpilFrontend = {"ajaxUrl":"/wp-admin/admin-ajax.php","postId":"731","postType":"post","openInternalInNewTab":"0","openExternalInNewTab":"0","disableClicks":"0","openLinksWithJS":"0","trackAllElementClicks":"0","clicksI18n":{"imageNoText":"Image in link: No Text","imageText":"Image Title: ","noText":"No Anchor Text Found"}};
//# sourceURL=wpil-frontend-script-js-extra
https://topnotch-seo.com/wp-content/plugins/link-whisper-premium/js/frontend.min.js
https://topnotch-seo.com/wp-includes/js/imagesloaded.min.js
var oceanwpLocalize = {"nonce":"5179d84cf1","isRTL":"","menuSearchStyle":"drop_down","mobileMenuSearchStyle":"disabled","sidrSource":null,"sidrDisplace":"1","sidrSide":"left","sidrDropdownTarget":"link","verticalHeaderTarget":"link","customScrollOffset":"0","customSelects":".woocommerce-ordering .orderby, #dropdown_product_cat, .widget_categories select, .widget_archive select, .single-product .variations_form .variations select","loadMoreLoadingText":"Loading..."};
//# sourceURL=oceanwp-main-js-extra
https://topnotch-seo.com/wp-content/themes/oceanwp/assets/js/theme.min.js
https://topnotch-seo.com/wp-content/themes/oceanwp/assets/js/drop-down-mobile-menu.min.js
https://topnotch-seo.com/wp-content/themes/oceanwp/assets/js/drop-down-search.min.js
https://topnotch-seo.com/wp-content/themes/oceanwp/assets/js/vendors/magnific-popup.min.js
https://topnotch-seo.com/wp-content/themes/oceanwp/assets/js/ow-lightbox.min.js
https://topnotch-seo.com/wp-content/themes/oceanwp/assets/js/vendors/flickity.pkgd.min.js
https://topnotch-seo.com/wp-content/themes/oceanwp/assets/js/ow-slider.min.js
https://topnotch-seo.com/wp-content/themes/oceanwp/assets/js/scroll-effect.min.js
https://topnotch-seo.com/wp-content/themes/oceanwp/assets/js/scroll-top.min.js
https://topnotch-seo.com/wp-content/themes/oceanwp/assets/js/select.min.js
https://topnotch-seo.com/wp-content/plugins/breeze/assets/js/js-front-end/breeze-lazy-load.min.js
document.addEventListener("DOMContentLoaded", function () {
if ( "function" !== typeof window.LazyLoad && "function" !== typeof LazyLoad ) {
return;
}var breezeLazyLoad = window.LazyLoad || LazyLoad;window.lazyLoadInstance = new breezeLazyLoad({
elements_selector: ".br-lazy",
data_src: "breeze",
data_srcset: "brsrcset",
data_sizes: "brsizes",
class_loaded: "br-loaded",
threshold: 300,
});
});
//# sourceURL=breeze-lazy-js-after
https://topnotch-seo.com/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-wpforms-fcdfcbdf65e9ba33accc.js
var smushLazyLoadOptions = {"autoResizingEnabled":true,"autoResizeOptions":{"precision":5,"skipAutoWidth":true}};
//# sourceURL=smush-lazy-load-js-before
https://topnotch-seo.com/wp-content/plugins/wp-smush-pro/app/assets/js/smush-lazy-load.min.js
https://topnotch-seo.com/wp-content/plugins/brizy/public/editor-build/prod/editor/js/group-jq.min.js
https://topnotch-seo.com/wp-content/plugins/brizy-pro/public/editor-build/prod/js/group-1_2.pro.min.js
https://topnotch-seo.com/wp-content/plugins/brizy/public/editor-build/prod/editor/js/preview.min.js
https://topnotch-seo.com/wp-content/plugins/brizy-pro/public/editor-build/prod/js/preview.pro.min.js