{"id":1030,"date":"2026-10-23T17:27:28","date_gmt":"2026-10-23T17:27:28","guid":{"rendered":"http:\/\/jfdi-blog-qr-code-minimum-size"},"modified":"2026-10-23T17:27:28","modified_gmt":"2026-10-23T17:27:28","slug":"qr-code-minimum-size","status":"publish","type":"post","link":"https:\/\/jfdi.pro\/blog\/qr-code-minimum-size\/","title":{"rendered":"How small can a QR code be printed?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A QR code with a short link can be printed as small as about <strong>2 cm (0.8 in)<\/strong> wide, including its blank border, if it&#8217;s read from close up. Two things push the size up: <strong>how much the code holds<\/strong>, because more data means more, smaller squares, and <strong>how far away people scan it from<\/strong>. A good rule is that a code should be at least a tenth of the scanning distance: a poster read from 2 metres needs a code at least 20 cm wide.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/jfdi.pro\/qr\/\">Make a QR code<\/a><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Why content changes the size<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A QR code is a grid of black and white squares (called <em>modules<\/em>). The more you put in it, the more squares it needs: the smallest code, <em>version 1<\/em>, is 21 \u00d7 21 squares, and each version up adds 4 more per side, up to version 40 at 177 \u00d7 177. Phones need each square to be big enough to see, so a denser code needs printing larger to keep its squares the same size.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I ran some typical contents through the QR encoder the <a href=\"https:\/\/jfdi.pro\/qr\/\">JFDI QR code maker<\/a> uses, at its two most common error-correction levels:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>What the code holds<\/th><th>Characters<\/th><th>Squares across (Medium)<\/th><th>Squares across (Highest, for logos)<\/th><\/tr><\/thead><tbody><tr><td>Short link: <code>https:\/\/jfdi.pro\/blog\/menu<\/code><\/td><td>21<\/td><td>25<\/td><td>29<\/td><\/tr><tr><td>Typical page link<\/td><td>54<\/td><td>33<\/td><td>41<\/td><\/tr><tr><td>Wi-Fi network and password<\/td><td>43<\/td><td>33<\/td><td>37<\/td><\/tr><tr><td>Long link with tracking parameters<\/td><td>112<\/td><td>45<\/td><td>57<\/td><\/tr><tr><td>Contact card (name, company, phone, email, website)<\/td><td>169<\/td><td>53<\/td><td>69<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The long tracking link needs almost twice as many squares across as the short link, and with a logo it needs more than twice.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Minimum sizes for close-up scanning<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Working from the 2 cm guideline for a short link, each square is about 0.6 mm. Keeping squares that size, and adding the standard blank border of 4 squares on each side, gives these minimum widths for codes read from close up (a table card, a business card, a product label):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>What the code holds<\/th><th>Minimum width (Medium)<\/th><th>With a logo (Highest)<\/th><\/tr><\/thead><tbody><tr><td>Short link<\/td><td>2.0 cm<\/td><td>2.2 cm<\/td><\/tr><tr><td>Typical page link or Wi-Fi<\/td><td>2.5 cm<\/td><td>3.0 cm<\/td><\/tr><tr><td>Long link with tracking<\/td><td>3.2 cm<\/td><td>3.9 cm<\/td><\/tr><tr><td>Contact card<\/td><td>3.7 cm<\/td><td>4.7 cm<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">These are minimums for good conditions: sharp printing, a dark code on a light background, and a modern phone. Add a margin of safety for anything that matters, and test with an older phone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Minimum sizes for scanning from a distance<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For posters, shop windows and signs, distance matters more than content. Use the 10:1 rule as a starting point:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Scanning distance<\/th><th>Minimum code width<\/th><\/tr><\/thead><tbody><tr><td>30 cm (in your hand)<\/td><td>3 cm<\/td><\/tr><tr><td>1 m (a poster on a wall)<\/td><td>10 cm<\/td><\/tr><tr><td>2 m (across a room)<\/td><td>20 cm<\/td><\/tr><tr><td>5 m (a shop window from the pavement)<\/td><td>50 cm<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dense codes need more than this; short links can manage a little less.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to make a code smaller<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Shorten the link.<\/strong> Link to <code>yoursite.com\/menu<\/code>, not a long page address with tracking parameters. This is the biggest win. (Avoid third-party link shorteners for print: if the service closes, the code dies. See <a href=\"https:\/\/jfdi.pro\/blog\/why-qr-code-stopped-working\/\">why free QR codes stop working<\/a>.)<\/li>\n\n\n\n<li><strong>Put fewer fields in a contact card.<\/strong> A name, phone and email are often enough.<\/li>\n\n\n\n<li><strong>Leave out the logo<\/strong>, or keep it small. A logo hides part of the code, so it needs the highest error correction, which adds squares.<\/li>\n\n\n\n<li><strong>Use square dots.<\/strong> Rounded and dot styles look nice but leave less margin for error at small sizes.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The maker&#8217;s notes under the preview show the code&#8217;s version, its squares across and its error correction, and warn when a code holds enough data that it needs printing at least 4 cm wide.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Printing checklist<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Download SVG or PDF<\/strong> for print, so the edges stay sharp at any size.<\/li>\n\n\n\n<li><strong>Keep the blank border<\/strong> (4 squares is the standard; never less than 2).<\/li>\n\n\n\n<li><strong>Dark on light<\/strong>, with contrast of at least 4:1, on a matt surface.<\/li>\n\n\n\n<li><strong>Don&#8217;t print on curves<\/strong> or creases.<\/li>\n\n\n\n<li><strong>Test the printed proof<\/strong> with two or three phones, from the real distance.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Related<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/jfdi.pro\/blog\/why-qr-code-stopped-working\/\">Why your free QR code stopped working<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jfdi.pro\/blog\/qr-code-for-menu\/\">How to make a QR code for a menu or table<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jfdi.pro\/help-qr.html\">The QR code maker guide: printing tips<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A QR code holding a short link can be printed about 2 cm wide. Longer content, logos and scanning from a distance all need more. Here are the numbers, worked out from what&#8217;s inside the code.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[76,75,68],"class_list":["post-1030","post","type-post","status-publish","format-standard","hentry","category-qr-codes","tag-design","tag-printing","tag-qr-codes"],"_links":{"self":[{"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/posts\/1030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/comments?post=1030"}],"version-history":[{"count":1,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/posts\/1030\/revisions"}],"predecessor-version":[{"id":1042,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/posts\/1030\/revisions\/1042"}],"wp:attachment":[{"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/media?parent=1030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/categories?post=1030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/tags?post=1030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}