Docs tower · floor

How to make a QR code for a Google Form, and why it breaks

Working out how to make a qr code for a google form is genuinely easy: a QR code is an encoding of a web address, a Google Form has a web address, and any generator will turn one into the other. The reason people search for it repeatedly is that the code then fails in front of a room full of people, and the cause is never the code.

“Before responders can access your form, you need to publish it… If the form is unpublished, responders with the link can’t access it.”

Google’s own Forms documentation, read 21 August 2026. This is the first thing to check and the single most common reason a QR code for a form does not work. The code is fine; the form is not published. Once it is, Google shows “Published” at the top right — which is the state to confirm before you print anything.

Three settings that break a printed code, all inside Google Forms

None of them is a QR problem, and all of them look like one. From Google’s documentation.

  1. The form is not published The default state of a new form. The link exists and does nothing until you click Publish.
  2. General access is not set to anyone with a link Under “General access” you can “give access to anyone with a link or to target audiences”. If it is restricted to named people or a domain, a stranger scanning your poster gets a request-access screen.
  3. An expiry date was set Google offers “Add expiration” when sharing. A code on a printed sheet outlives the sheet; an expiry means it stops working on a date you have probably forgotten.

All three are inside Google Forms rather than inside the code, which is why testing the QR image tells you nothing. The test that works is opening the form link in a private browsing window, where you are not signed in as yourself. That is what a stranger sees, and it takes ten seconds.

Now the part about the generator, which matters more than it looks. Two very different things are both called a QR code.

A static code — the one you want

The image encodes your form’s address directly. Nobody sits in the middle.

Scan it and the link reads docs.google.com/forms/…. It works for as long as the form does, and it keeps working if the site you made it on disappears.

A dynamic code — the one you are usually given

The image encodes an address on the generator’s own domain, which redirects to your form.

Scan it and you see a short domain you do not recognise. It depends on that company continuing to exist, to run the redirect, and not to start charging — and they can see every scan, and change where it points.

The distinction decides whether the code you print is yours. A poster, a table card, a sticker on a door — these outlive the free tier of whatever site made them, and a dynamic code turns your printed material into a dependency on a company you have never spoken to.

How to tell which one you were given, in five seconds. Scan your own code before printing it and read the address that appears. If it starts with docs.google.com, it is static and it is yours. If it is a short domain you do not recognise, it is dynamic and it is theirs. This is the same check you would apply to a stranger’s code, and it is worth applying to your own.

What we are not going to do is name a generator. Of the first eight results for this question, seven are companies selling or installing something — an add-on, a design tool, three QR services, a form platform. We have not tested them against each other and will not recommend one on impression. What the check above gives you is better than a recommendation: a way to verify any of them yourself, including ones that did not exist when this was written.

The version with no third party at all. If your organisation already uses something that generates codes — many document and design tools do — that is one fewer company in the chain. And if you only need the code once, on a screen rather than on paper, sending the link is simply better than encoding it.

Before you print anything, in order. Publish the form and confirm it says Published. Set general access to anyone with a link if strangers need to respond. Check that no expiry is set. Scan your own code and read the address. Then open the link in a private window as a final check. Five steps, none of which involve the code, and together they are the difference between a poster that works and a poster that generates a queue of people telling you it does not.

The publishing and access behaviour on this page is quoted from Google’s own Forms documentation on the date it was read. Google changes Forms regularly — the Publish step is itself a relatively recent requirement — so the setting names are worth checking against the interface in front of you. The static and dynamic distinction is ours, and the test for it is one you can run rather than one you have to believe.

Where to start

Four ways in.

“The code does not work for other people.”
Three causes above — then sharing the form
“Which generator should I use?”
Read the test above, then the code itself
“I am printing it on something.”
Go to before you print
“Somebody sent me a code.”
Different question — see the code itself

Sharing the form

Nearly every QR failure is a sharing setting, and sharing settings are documented rather than mysterious.

The code itself

A QR code is a link in a picture. Reading it before you trust it is the whole skill, whether you made it or received it.

Before you print

Printed material outlives the free tier of whatever made it. What to check while changing it is still cheap.

Collecting the answers

The code is the first ten seconds. What happens to the responses afterwards is the longer question.

What happens to your textWhat each service says it keeps and trains on, quoted with the date.Being built
Customer data and the lawWhat you are holding about the people who replied, and what that obliges you to do.Being built
How long to keep recordsThe periods two tax authorities publish, before you delete anything.Open this floor →

What this tower will not do

It will not recommend a QR generator. Seven of the first eight results are selling one, we have not tested them, and the check above lets you judge any of them yourself.

It will not tell you the code is the problem. In every common failure it is a Google Forms setting, and those are documented.

And it will not gloss over dynamic codes. A printed code that routes through somebody else’s domain is a dependency, and you should know you have taken one on. What holds instead is simple: the publishing and access behaviour is quoted from Google’s own Forms documentation, with the date it was read.

Where this page got its facts

  1. Google Docs Editors Help — Publish & share your form with responders, on the publish requirement, general access options and setting an expiry — support.google.com, read 21 August 2026.

Written by Alberto Gulotta

Founder and editor of AI Tools Primer, writing from Palermo, Italy. Thirty-five years of taking computers apart, starting with a Commodore 64 — the long version is on the about page.

Something wrong on this page? Write to aitoolsprimer@gmail.com and it gets fixed.

Written on 21 August 2026.

Independence and limits

No affiliate links and no paid placements anywhere on this site. Nobody pays to appear here, and no company has seen this page before you did.

This is general information, not professional advice. Where a page touches money, health, safety or the law, it names its source and the date it was read — and your situation may still differ. See the privacy page and the cookie policy.