URL to QR Code

Paste any web address and get a QR code that opens it. Download a 1024 × 1024 px PNG or a vector SVG — free, no account, and the link never leaves your browser.

Contrast 21.0:1

What a URL QR code is

A URL to QR code converter turns a web address into a square barcode that opens that address when a phone camera scans it. The address is stored inside the pattern itself, so no server is involved once the code is printed.

Every QR code on this site is static, which means the URL is written into the black-and-white pattern rather than stored somewhere and looked up later. Scanning the code hands your phone the exact address you typed. Nothing is counted, nothing is redirected, and the code keeps working for as long as the destination does.

Before encoding, QR From Link normalises what you paste: it trims stray spaces and invisible characters that come along when you copy from a PDF or a chat, adds https:// if you left the scheme off, and lower-cases the domain. Everything after the domain — the path, the query string, the fragment — is encoded exactly as you typed it, because those parts are case-sensitive on most servers.

How to convert a URL into a QR code

  1. 01

    Copy the full URL

    Open the page you want the code to lead to and copy the address from the browser bar. Copying it is safer than typing it: one wrong character produces a code that scans perfectly and goes nowhere.

  2. 02

    Paste it into the field

    Paste the address above. The encoded URL is shown under the code once it is generated, so you can read the domain back before committing it to print.

  3. 03

    Generate the QR code

    Select Generate QR. The code is built in your browser and appears immediately, along with its version, error-correction level, and module count.

  4. 04

    Download and test it

    Download the PNG for screens and everyday printing, or the SVG for professional print work. Then scan it with a phone that has never seen the link before.

What gets encoded, exactly

  • Query strings and campaign tags

    Parameters such as ?utm_source=poster survive intact, so a printed code can be attributed in your analytics without a redirect service in the middle. Longer URLs simply produce a denser code.

  • Paths are case-sensitive

    Most web servers treat /Report and /report as different pages. The domain is lower-cased for you because domains are case-insensitive; everything after it is left exactly as you pasted it.

  • Accented and non-Latin domains

    A domain like café.example is converted to its punycode form (xn--caf-dma.example) before encoding, which is what browsers and scanners expect. The destination is unchanged.

  • Length and density

    Links up to 2,000 characters are accepted. Past roughly 300 characters the modules get small enough that print size starts to matter — a shorter URL always scans more reliably than a long one.

  • http:// is kept if you type it

    An explicit http:// scheme is respected rather than silently upgraded, because some intranet and device addresses only answer on plain HTTP. If you omit the scheme entirely, https:// is used.

  • What is rejected

    javascript:, data:, file: and other non-web schemes are refused before they reach the encoder. A QR code that runs a script when scanned is a security problem, not a feature.

Common URLs people convert

  • Product and landing pages
  • Online forms and surveys
  • Booking and calendar links
  • App store listings
  • Documentation and help pages
  • Payment and donation pages
  • Shared folders and file links
  • Job postings and applications

This page encodes http:// and https:// web addresses. For Wi-Fi, plain text, email, phone, or SMS codes, use the dedicated generators for those types; vCard contact details are not supported.

Because the code is static, the destination cannot be changed after you print it. If the address is likely to move, point the code at a URL you control and redirect from there.

Questions about this

No. The full address is encoded directly into the code, with no short link or redirect in between. That is why nothing can expire and nothing can be tracked — there is no service sitting between the scan and your page.

Not for a code that is already printed — the address is part of the pattern. The usual workaround is to encode a URL on a domain you control and set up a redirect, so you can re-point it without reprinting anything.

Scan it with a phone that has never opened the link, ideally on mobile data rather than your own Wi-Fi. That catches both a mistyped address and a page that only works when you are logged in.

Not from the code itself, because there is no redirect to count. Add campaign parameters to the URL before you generate the code and your own analytics will report the visits.