Open Tools Tools Features Blog About Contact Proof of Privacy

QR Code for a Google Form — Free, No Signup, No Expiry

Paste the Form link people should fill in and get a code you can print or project. It is a plain link code, so it keeps working for as long as the Form does — there is no account behind it and nothing to renew.

QR Code for a Google Form

Use the link from Send → link, not the address in your browser bar while editing.

Getting the right link (this is where it goes wrong)

A Google Form has two addresses and they look similar enough to be confused constantly. The one in your browser bar while you are building the form ends in /edit. Encode that and the code will scan flawlessly and send every single person to a "you need permission" page — and you usually find out after the handouts are printed.

The address you want comes from the Send button, then the link tab. It ends in /viewform, or it is a short forms.gle address if you tick "shorten URL". Either works here. This page rejects an /edit link rather than encoding it.

The other setting worth checking at the same time is under Responses: whether the form requires sign-in, and whether it is limited to your organisation. A code on a public poster pointing at an organisation-only form fails for exactly the people it was printed for.

Sizing for a projector versus a handout

These are different problems and the same code will not do both well.

On a screen or projector, the constraint is the distance of the back row. A rough guide that holds up in practice: the code needs to be about one-tenth of the viewing distance across. For a classroom where the furthest student is ten metres away, that is a one-metre code — which is most of a projected slide. In a lecture theatre, put the code on its own slide, as large as the slide allows, and leave it up for longer than feels necessary. People need time to get their phone out.

On a handout, the scanning distance is 20–30cm, so 2–3cm square is plenty. Print it black on white with a clear margin. Do not shrink it into a corner to make room for text — a code that has to be scanned twice is worse than one that takes more space.

Either way, put the form's address in readable text next to the code. Someone will have a phone that cannot scan, or a dead battery, or a policy against opening codes.

Test it before you print

Two minutes, and it catches nearly everything:

  1. Scan the code on screen with a phone that is not signed in to your Google account — or use a private browsing window on the phone.
  2. Check the form opens and is submittable, rather than showing a sign-in wall or a permission error.
  3. Submit a test response, then delete it from the responses sheet.

Testing while signed in as the form's owner proves nothing, because you can open anything. This is the same mistake as the /edit link, one step later.

What happens when you edit the form afterwards

Nothing, and that is the useful part. The code encodes the address, not the contents. You can rewrite every question, add sections, change the theme and reorder the whole thing, and previously printed codes keep working — they point at the same form and will show whatever that form now contains.

What does break a printed code: deleting the form, moving it to another account, or closing it to responses. Closing it is not a bad thing to do deliberately at the end of a survey, but be aware that the code then leads to a "no longer accepting responses" page rather than an error you will hear about.

This is also the difference between a static code like this one and the "dynamic" codes sold by subscription services. A dynamic code points at their redirect service, which points at your form, and gives you scan analytics and the ability to change the destination later. It also stops working the day you stop paying, and every scan goes through a third party first. For a form that has one address for its whole life, a static code is the better trade.

Next steps

Related tools

Browse all text and data tools, or see every QuickMerge tool.

Frequently asked questions

Which Google Form link should I use for the QR code?

The one from the Send button, link tab — it ends in /viewform, or is a short forms.gle address. Do not use the address in your browser bar while editing the form, which ends in /edit. That link scans perfectly and sends everyone to a permission-denied page. This page rejects an /edit link rather than encoding it.

Does the QR code stop working if I edit the form?

No. The code contains the form’s address, not its questions. You can change anything inside the form and previously printed codes still work. The code only breaks if you delete the form, move it to another account, or close it to responses.

Does this code expire or need a subscription?

No. It is a static code that contains the link directly, so there is no service in the middle that can expire it, meter it or withdraw it. There is no account here at all.

How big should the code be for a classroom?

For a projected code, roughly one-tenth of the distance to the furthest viewer — about a metre across for a ten-metre room, which means giving it its own slide. For a printed handout scanned at arm’s length, 2–3cm square is ample.

Why does my form show "you need permission" when scanned?

Two usual causes. Either the code contains the /edit link instead of the response link, or the form is restricted to signed-in users in your organisation and the person scanning is not one. Test by scanning with a phone that is not signed in to your account.

Can I track how many people scanned it?

Not with a static code — there is nothing in the middle to count. The form’s own response count tells you how many people submitted, which is usually the number that actually matters. Scan counts require a redirect service, which means a subscription and routing every respondent through a third party.

Is the form link sent to QuickMerge?

No. The code is generated in your browser. The link you paste is not transmitted, logged or stored anywhere.