Design Blast

#db-robots-tool { --blue:#1769ff;--navy:#11213b;--ink:#24334a; --muted:#68778c;--line:#e1e8f0;--bg:#f5f8fc; font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; max-width:1100px;margin:0 auto;color:var(--ink); } #db-robots-tool *{box-sizing:border-box} #db-robots-tool .rt-shell{ border:1px solid var(--line);border-radius:20px;overflow:hidden; background:#fff;box-shadow:0 15px 45px rgba(17,33,59,.06) } #db-robots-tool .rt-hero{ padding:34px 36px;background:linear-gradient(120deg,#edf4ff,#fff); border-bottom:1px solid var(--line) } #db-robots-tool .rt-eyebrow{ font-size:11px;font-weight:800;letter-spacing:1.6px; text-transform:uppercase;color:var(--blue);margin-bottom:11px } #db-robots-tool h2{ font-size:clamp(27px,4vw,38px);line-height:1.18; letter-spacing:-1px;color:var(--navy);margin:0 0 12px } #db-robots-tool p{font-size:14px;line-height:1.65;color:var(--muted);margin:0} #db-robots-tool .rt-content{padding:30px 36px 36px} #db-robots-tool .rt-layout{ display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start } #db-robots-tool .rt-panel{ border:1px solid var(--line);border-radius:14px;padding:22px;min-width:0 } #db-robots-tool .rt-panel h3{ font-size:17px;color:var(--navy);margin:0 0 7px } #db-robots-tool .rt-subtitle{margin-bottom:22px!important;font-size:12px!important} #db-robots-tool .rt-field{margin-bottom:18px} #db-robots-tool label.rt-label{ display:block;font-size:12px;font-weight:750;color:#35445b;margin-bottom:8px } #db-robots-tool input[type="text"], #db-robots-tool input[type="url"], #db-robots-tool select, #db-robots-tool textarea{ display:block;width:100%;max-width:100%;min-height:44px; border:1px solid #dbe4ef;border-radius:9px;padding:11px 12px; font-size:13px;line-height:1.5;background:#fff;color:var(--ink); outline:none;box-shadow:none } #db-robots-tool textarea{resize:vertical;min-height:76px} #db-robots-tool input:focus, #db-robots-tool select:focus, #db-robots-tool textarea:focus{ border-color:var(--blue);box-shadow:0 0 0 3px #1769ff18 } #db-robots-tool .rt-check{ display:flex;align-items:flex-start;gap:9px;margin:12px 0; font-size:13px;line-height:1.5;color:#3d4b60;cursor:pointer } #db-robots-tool .rt-check input{ margin-top:3px;accent-color:var(--blue);width:16px;height:16px;flex-shrink:0 } #db-robots-tool .rt-rule{ display:grid;grid-template-columns:minmax(0,1fr) 110px 32px; gap:8px;margin:0 0 9px;align-items:center } #db-robots-tool .rt-rule input,#db-robots-tool .rt-rule select{min-width:0} #db-robots-tool .rt-remove{ width:32px;height:40px;border:1px solid var(--line);background:#fff; border-radius:8px;cursor:pointer;color:#a33;font-size:18px } #db-robots-tool .rt-btn{ display:inline-flex;align-items:center;justify-content:center;gap:7px; border:0;border-radius:9px;padding:12px 16px;min-height:43px; font-size:13px;font-weight:750;cursor:pointer;text-decoration:none; transition:.2s } #db-robots-tool .rt-primary{background:var(--blue);color:#fff} #db-robots-tool .rt-primary:hover{background:#0755df} #db-robots-tool .rt-secondary{background:#fff;color:var(--ink);border:1px solid #dce4ef} #db-robots-tool .rt-secondary:hover{background:#f4f7fb} #db-robots-tool .rt-add{padding:9px 12px;min-height:36px} #db-robots-tool .rt-rule-head{ display:grid;grid-template-columns:minmax(0,1fr) 110px 32px; gap:8px;margin-bottom:7px;color:var(--muted);font-size:10px;font-weight:800; text-transform:uppercase;letter-spacing:.5px } #db-robots-tool .rt-preview-top{ display:flex;align-items:center;justify-content:space-between;gap:10px; margin-bottom:13px } #db-robots-tool .rt-file{ font-size:11px;font-weight:800;padding:6px 9px;border-radius:7px; background:#eaf2ff;color:#1455bb } #db-robots-tool .rt-code{ display:block;width:100%;min-height:330px;background:#101b2c; color:#d6e5fa;border:1px solid #253750;border-radius:10px; padding:17px;font-family:Consolas,Monaco,monospace;font-size:12px; line-height:1.8;white-space:pre;overflow:auto;resize:vertical; tab-size:2 } #db-robots-tool .rt-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px} #db-robots-tool .rt-notice{ margin-top:17px;padding:13px 14px;background:#f4f7fb;border-radius:9px; color:#65748a;font-size:11px;line-height:1.7 } #db-robots-tool .rt-warning{ display:none;margin-top:12px;padding:12px 14px;border-radius:9px; color:#8a4c00;background:#fff5df;font-size:12px;line-height:1.6 } #db-robots-tool .rt-warning.visible{display:block} #db-robots-tool .rt-footer{ padding:22px 36px;background:#f7f9fc;border-top:1px solid var(--line) } #db-robots-tool .rt-footer strong{font-size:13px;color:var(--navy)} #db-robots-tool .rt-footer p{font-size:12px;margin-top:5px} @media(max-width:760px){ #db-robots-tool .rt-hero{padding:26px 21px} #db-robots-tool .rt-content{padding:20px 15px} #db-robots-tool .rt-layout{grid-template-columns:1fr;gap:17px} #db-robots-tool .rt-panel{padding:16px} #db-robots-tool .rt-footer{padding:20px} #db-robots-tool .rt-rule{grid-template-columns:minmax(0,1fr) 94px 30px;gap:5px} #db-robots-tool .rt-rule-head{grid-template-columns:minmax(0,1fr) 94px 30px;gap:5px} }
Free Technical SEO Tool

Robots.txt Generator

Create a custom robots.txt file for your website. Configure crawler access, add sitemap URLs, preview your rules, and download your file in seconds.

Configure your rules

Choose the paths search crawlers should be allowed or disallowed to request.

All crawlers (*) Googlebot Bingbot Googlebot-Image GPTBot Custom crawler
PathAction

Support varies by crawler. Invalid directives will not be accepted.

Generated robots.txt

Updates automatically as you edit.

robots.txt
Before publishing: Replace example sitemap URLs with your real sitemap URL. Review each rule carefully. A disallow rule can prevent crawling of important pages, and robots.txt is not a security or privacy mechanism.
(function(){ const root=document.getElementById('db-robots-tool'); if(!root||root.dataset.ready==='1')return; root.dataset.ready='1'; const $=id=>root.querySelector('#'+id); const rules=$('db-rt-rules'); const output=$('db-rt-output'); const warning=$('db-rt-warning'); let ruleId=0;function addRule(path='',action='Disallow'){ const row=document.createElement('div'); row.className='rt-rule'; row.dataset.ruleId=String(++ruleId); const input=document.createElement('input'); input.type='text'; input.placeholder='/private/'; input.value=path; input.setAttribute('aria-label','Path'); const select=document.createElement('select'); select.setAttribute('aria-label','Rule action'); [['Disallow','Disallow'],['Allow','Allow']].forEach(([value,label])=>{ const option=document.createElement('option'); option.value=value;option.textContent=label;select.appendChild(option); }); select.value=action; const remove=document.createElement('button'); remove.type='button';remove.className='rt-remove'; remove.textContent='×';remove.setAttribute('aria-label','Remove rule'); remove.addEventListener('click',()=>{row.remove();generate();}); input.addEventListener('input',generate); select.addEventListener('change',generate); row.append(input,select,remove); rules.appendChild(row); }function safePath(value){ const path=value.trim(); if(!path)return ''; if(!path.startsWith('/'))return null; if(/[\r\n#]/.test(path))return null; return path; }function generate(){ const warnings=[]; const bot=$('db-rt-bot').value; const agent=bot==='Custom'?$ ('db-rt-custom').value.trim():bot; if(!agent||/[\r\n#\s]/.test(agent)){ warnings.push('Enter a valid custom crawler user-agent without spaces or line breaks.'); }const lines=['User-agent: '+(agent||'*')]; if($('db-rt-admin').checked)lines.push('Disallow: /wp-admin/'); if($('db-rt-ajax').checked)lines.push('Allow: /wp-admin/admin-ajax.php'); if($('db-rt-search').checked)lines.push('Disallow: /*?s=');rules.querySelectorAll('.rt-rule').forEach(row=>{ const path=safePath(row.querySelector('input').value); if(path===null){ if(row.querySelector('input').value.trim())warnings.push('Each custom path must start with / and cannot contain line breaks or #.'); return; } if(path)lines.push(row.querySelector('select').value+': '+path); });const sitemapText=$('db-rt-sitemap').value.trim(); const sitemaps=[]; if(sitemapText){ sitemapText.split(/\r?\n/).map(s=>s.trim()).filter(Boolean).forEach(url=>{ try{ const parsed=new URL(url); if(!['https:','http:'].includes(parsed.protocol)||parsed.username||parsed.password){ warnings.push('A sitemap URL is invalid. Use a full public HTTP or HTTPS URL.'); }else if(parsed.hash||/[\r\n]/.test(url)){ warnings.push('Sitemap URLs must not contain fragments or line breaks.'); }else{ sitemaps.push(parsed.href); } }catch(e){warnings.push('A sitemap URL is invalid. Include the full URL, such as https://example.com/sitemap.xml.');} }); }const extra=$('db-rt-extra').value.trim(); const extraLines=[]; if(extra){ extra.split(/\r?\n/).forEach(line=>{ const trimmed=line.trim(); if(!trimmed)return; if(/[\r\n]/.test(trimmed)||!/^(Crawl-delay|Host):\s*\S.+$/i.test(trimmed)){ warnings.push('An additional directive was skipped. Only basic Crawl-delay and Host directives are accepted here.'); return; } extraLines.push(trimmed); }); }let text=lines.join('\n'); if(extraLines.length)text+='\n'+extraLines.join('\n'); if(sitemaps.length)text+='\n\n'+Array.from(new Set(sitemaps)).map(url=>'Sitemap: '+url).join('\n'); output.value=text+'\n';if(agent&&agent!=='*'&&agent!=='Googlebot'&&agent!=='Bingbot'&&agent!=='Googlebot-Image'&&agent!=='GPTBot'){ warnings.push('Confirm that this crawler uses the exact user-agent you entered.'); } if(agent==='GPTBot')warnings.push('GPTBot is a crawler operated by OpenAI. These rules do not automatically control every AI crawler or service.'); if(agent!=='*'&&agent)warnings.push('You selected a named crawler. Rules for other crawlers are not included. Use All crawlers if that is your intention.'); warning.textContent=Array.from(new Set(warnings)).join(' '); warning.classList.toggle('visible',warnings.length>0); }$('db-rt-bot').addEventListener('change',()=>{ $('db-rt-custom-wrap').hidden=$('db-rt-bot').value!=='Custom'; generate(); }); ['db-rt-custom','db-rt-admin','db-rt-ajax','db-rt-search','db-rt-sitemap','db-rt-extra'].forEach(id=>{ $(id).addEventListener('input',generate); $(id).addEventListener('change',generate); }); $('db-rt-add').addEventListener('click',()=>{addRule();generate();}); $('db-rt-reset').addEventListener('click',()=>{ $('db-rt-bot').value='*'; $('db-rt-custom').value=''; $('db-rt-custom-wrap').hidden=true; $('db-rt-admin').checked=true; $('db-rt-ajax').checked=true; $('db-rt-search').checked=false; $('db-rt-sitemap').value=''; $('db-rt-extra').value=''; rules.replaceChildren(); addRule(); generate(); });$('db-rt-copy').addEventListener('click',async()=>{ try{ await navigator.clipboard.writeText(output.value); $('db-rt-copy').textContent='Copied!'; setTimeout(()=>$('db-rt-copy').textContent='Copy contents',1600); }catch(e){ output.readOnly=false;output.focus();output.select(); const ok=document.execCommand('copy'); output.readOnly=true; $('db-rt-copy').textContent=ok?'Copied!':'Select and copy'; setTimeout(()=>$('db-rt-copy').textContent='Copy contents',1600); } });$('db-rt-download').addEventListener('click',()=>{ const blob=new Blob([output.value],{type:'text/plain;charset=utf-8'}); const url=URL.createObjectURL(blob); const link=document.createElement('a'); link.href=url;link.download='robots.txt'; document.body.appendChild(link);link.click();link.remove(); URL.revokeObjectURL(url); });addRule(); generate(); })();