🔗 URL QR Code Generator

Turn Any URL Into a
Perfect QR Code

Paste any website link and generate a perfect, scannable QR code in seconds. Custom colors, logo, download PNG or SVG. 100% free — no sign-up ever.

🔗 Instant QR 🎨 Custom Colors 📥 PNG / SVG ♾️ Never Expires
🔗 Enter your URL LIVE PREVIEW
How to get started: Enter any website URL (e.g. https://example.com). The QR code generates instantly. Customize colors, add a logo, and download PNG or SVG.
Enter a URL to generate your QR code
Try:
📁 Click or drag to upload logo
PNG, JPG, SVG · max 500 KB
Logo preview
URL QR Code
💡 Quick tips
Use HTTPS URLs for trust and security
High contrast = easier scanning
Download SVG for print — infinite resolution
Test scan before printing in bulk
Minimum print size: 2×2 cm

📊 Why QR Codes Are Essential for Modern Marketing

63%
of marketers say QR codes are an effective part of their marketing strategy
75%
of smartphone users have scanned a QR code in the last year
3.7×
higher engagement when QR codes are used in print vs. print alone
100%
private — your URL never leaves your device

📖 How to Create Your URL QR Code in 4 Steps

Enter Your URL
Type or paste the full web address (e.g., https://yoursite.com/page). The tool automatically adds "https://" if missing.
Generate QR Code
Click "Generate QR Code" — your QR appears instantly in the preview panel. No waiting, no registration.
Customize (Optional)
Change colors, add a logo, or adjust the size to match your brand. The tool auto-sets H error correction for logos.
Download & Deploy
Choose PNG for digital (web, email) or SVG for print (flyers, posters, business cards). Your QR code is permanent and free.
Test on All Devices
Before bulk printing, test the QR with both iPhone and Android cameras to ensure it scans correctly.
Track Performance
Use UTM parameters in your URL to track scans and conversions in Google Analytics or your preferred tool.

💼 Where to Use Your URL QR Code

Business Cards
Link to your portfolio, LinkedIn, or website instantly.
Flyers & Brochures
Direct users to special offers, landing pages, or video demos.
Product Packaging
Link to manuals, warranty registration, or reorder pages.
Restaurant Menus
Replace paper menus with a URL QR code linking to your online menu.
Hospitality
Wi-Fi login page, hotel app download, or local attraction guide.
Event Ticketing
Direct attendees to event schedules, speaker info, or feedback forms.
Exhibitions
Display QR codes on banners to instantly collect leads or share catalogs.
Resumes & Portfolios
Include a QR code on printed CVs to direct recruiters to your online portfolio.

🚀 6 Benefits of a URL QR Code

100% Free – No Hidden Costs
Unlike many tools that charge after a few scans, we offer unlimited free QR codes. No watermarks, no registration.
Static – Never Expires
Our QR codes encode the URL directly. They work forever without any server dependency or monthly subscription.
Native Scannability
Works with the native camera app on iPhone (iOS 11+) and Android (9+) – no third-party app required.
Full Customization
Change colors, add a logo, and adjust error correction to ensure your QR code remains scannable and on-brand.
PNG & SVG Export
Download PNG for digital use and SVG vector for professional print – from business cards to billboards.
Privacy First – No Data Collection
We do NOT store your URLs, track scans, or ask for personal information. What you generate stays on your device.

📖 Complete Guide: How to Use URL QR Codes for Marketing & Branding

QR codes are one of the most versatile and effective tools for bridging the physical and digital worlds. A URL QR code allows you to encode any web address into a scannable image – perfect for marketing campaigns, product packaging, business cards, and much more. Unlike dynamic QR codes (which often require paid subscriptions), static URL QR codes encode the link directly. This means they work forever, offline, with no server dependency.

Why Use a URL QR Code?

QR codes eliminate the friction of typing a URL manually. With a single scan, users are directed to your website, landing page, or special offer – exactly where you want them. This significantly increases conversion rates compared to asking users to remember or type a web address. For businesses, this means more traffic, more leads, and more sales from your offline marketing materials.

Best Practices for URL QR Codes

Frequently Asked Questions

Paste your website URL (e.g. https://example.com) into the box above and click Generate. The QR code appears instantly. Download as PNG for digital use or SVG for print.
Static URL QR codes (like these) never expire. They encode the URL directly and work forever as long as the website is live. No server required.
Minimum 2×2 cm for reliable scanning. For business cards: 200px. For flyers/posters: 400px+. Always download SVG for print — it scales to any size without pixelation.
No — static QR codes encode the URL permanently. To change the destination, generate a new QR code with the new URL. If you need editable QR codes, you need a dynamic QR service (usually paid).
Long URLs create denser, harder-to-scan QR codes. If your URL is over 100 characters, consider using a URL shortener (bit.ly, tinyurl.com) first, then generate the QR code from the short URL. This produces a cleaner, more scannable code.
No. All QR code generation happens entirely in your browser. Your URL never leaves your device — never sent to any server, never stored, never tracked.

URL QR Code · ToolsBox.org

`); win.document.close(); } function resetAll() { document.getElementById('url-inp').value = ''; document.getElementById('url-status').className = 'url-status idle'; document.getElementById('url-status').textContent = 'Enter a URL to generate your QR code'; document.getElementById('qr-out').innerHTML = ''; document.getElementById('qm-info').textContent = '—'; document.getElementById('qm-ready').textContent = ''; rmLogo(); lastValidURL = ''; } function toggleCust() { let b = document.getElementById('cust-body'); let hd = document.querySelector('.cust-hd'); let h = b.classList.toggle('hide'); hd.setAttribute('aria-expanded', !h); document.querySelector('.cust-arr').textContent = h ? '▾' : '▴'; } function syncHex(cid, hid) { document.getElementById(hid).value = document.getElementById(cid).value; } function syncCol(hid, cid) { let v = document.getElementById(hid).value; if (/^#[0-9a-fA-F]{6}$/.test(v)) document.getElementById(cid).value = v; } function autoGen() { clearTimeout(genTimer); genTimer = setTimeout(() => { if (document.getElementById('url-inp').value.trim()) generateQR(); }, 280); } function updSize() { let v = document.getElementById('sz-range').value; document.getElementById('sz-label').textContent = v + '×' + v; document.getElementById('sz-range').setAttribute('aria-valuetext', v + ' by ' + v + ' pixels'); } function setEC(ec, btn) { EC = ec; document.querySelectorAll('.ec-p').forEach(p => { p.classList.remove('on'); p.setAttribute('aria-pressed', 'false'); }); btn.classList.add('on'); btn.setAttribute('aria-pressed', 'true'); autoGen(); } function preset(fg, bg) { document.getElementById('fg-col').value = fg; document.getElementById('fg-hex').value = fg; document.getElementById('bg-col').value = bg; document.getElementById('bg-hex').value = bg; autoGen(); } function handleLogo(inp) { let f = inp.files[0]; if (!f) return; if (f.size > 512000) { showErr('Logo must be under 500 KB'); return; } let reader = new FileReader(); reader.onload = e => { currentLogoBase64 = e.target.result; document.getElementById('logo-img').src = currentLogoBase64; document.getElementById('logo-name').textContent = f.name; document.getElementById('logo-prev').style.display = 'flex'; setEC('H', document.querySelector('.ec-p[data-ec="H"]')); autoGen(); }; reader.readAsDataURL(f); } function rmLogo() { currentLogoBase64 = null; document.getElementById('logo-inp').value = ''; document.getElementById('logo-prev').style.display = 'none'; document.getElementById('logo-img').src = ''; autoGen(); } function showErr(m) { let e = document.getElementById('err-box'); e.textContent = '⚠️ ' + m; e.classList.add('show'); setTimeout(() => e.classList.remove('show'), 5000); } function hideErr() { document.getElementById('err-box').classList.remove('show'); } function faq(el) { let p = el.parentElement; let open = p.classList.contains('open'); document.querySelectorAll('.fi').forEach(x => { x.classList.remove('open'); x.querySelector('.fq').setAttribute('aria-expanded', 'false'); }); if (!open) { p.classList.add('open'); el.setAttribute('aria-expanded', 'true'); } } // Mobile nav (function() { let h = document.getElementById('ham'), m = document.getElementById('mob-menu'); h.addEventListener('click', () => { let o = m.classList.toggle('open'); h.setAttribute('aria-expanded', o); let s = h.querySelectorAll('span'); if (o) { s[0].style.transform = 'rotate(45deg) translate(4px,4px)'; s[1].style.opacity = '0'; s[2].style.transform = 'rotate(-45deg) translate(4px,-4px)'; } else { s.forEach(x => { x.style.transform = ''; x.style.opacity = ''; }); } }); document.addEventListener('click', e => { if (!h.contains(e.target) && !m.contains(e.target)) { m.classList.remove('open'); h.setAttribute('aria-expanded', 'false'); h.querySelectorAll('span').forEach(x => { x.style.transform = ''; x.style.opacity = ''; }); } }); })(); // Logo drag-and-drop (function() { let drop = document.getElementById('logo-drop'); ['dragenter', 'dragover'].forEach(ev => drop.addEventListener(ev, e => { e.preventDefault(); drop.classList.add('drag-over'); })); ['dragleave', 'drop'].forEach(ev => drop.addEventListener(ev, e => { e.preventDefault(); drop.classList.remove('drag-over'); })); drop.addEventListener('drop', e => { e.preventDefault(); let f = e.dataTransfer.files[0]; if (f && f.type.startsWith('image/')) { let dt = new DataTransfer(); dt.items.add(f); document.getElementById('logo-inp').files = dt.files; handleLogo(document.getElementById('logo-inp')); } }); drop.addEventListener('keydown', e => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); document.getElementById('logo-inp').click(); } }); })(); window.addEventListener('load', () => { let demoUrl = 'https://mytoolsbox.org'; document.getElementById('url-inp').value = demoUrl; onURLInput(document.getElementById('url-inp')); });