Facebook QR code
The code holds a link to a page, a group or a single post. Scanning opens Facebook if the app is installed and the website if it is not, which is the behaviour you want from something printed on a shop window.
Create a Facebook codePage or single post, static
Editorial teamLast reviewed: 29 October 2026Editorial standards
Short answer
Paste the page URL, not the address of the admin view. Keep the page username, because a static code cannot follow a rename. Print at least 3 cm wide on a poster and 2.5 cm on a card, and test the link in a private browser window before the print run.
A printed code is the only route into a Facebook page that does not depend on someone remembering to search, and that is its entire value. Nobody types a page name correctly from a moving bus.
The mechanics are simple. The failures come from three places: the wrong URL, a renamed page, and a page that cannot be seen without logging in.
What goes in the code
The public address of the page, of the form facebook.com/yourpage, or the address of one specific post for a campaign with a limited life. The long numeric profile URL also works and is more stable, but it is unreadable and it makes the printed code denser for no benefit.
What must not go in is the address of the page while you are logged in as the admin, and anything with a session parameter after it. Those links work for you and show a login wall or an error to everyone else.
- The public page address, not the admin view
- A page for something printed once, a post for a campaign with a deadline
- No tracking parameters, they make the payload longer and expire with the campaign
- Test the URL in a private window with no account signed in
The page name is the fragile part
A static code contains the address, so a page rename turns every printed code into a link to nothing. Before a run of ten thousand stickers, decide that the username stays. Prefer a name that is not tied to a season, an offer or a product line.
If the name has to stay flexible, a dynamic code with a redirect in front solves it, and introduces a provider you then depend on. For most small pages the honest answer is a stable username and a static code that never needs a service.
Pages nobody can see are pages nobody scans
A page with an age or country restriction, or one that is unpublished, shows a login wall to a stranger with a phone. The scan then looks broken when it is not.
Check the result on a device that is not logged in, in a normal browser window, and from the country the printed item will be used in. A code that works from your desk while signed in proves nothing.
Where the code earns its place
On a shop window, a market stall, a van, a receipt, a flyer for an event that has photos coming. Places where the person is already standing in front of the business and the phone is out.
Inside Facebook itself a link does the same job better. Use the printed code where there is no screen to tap.
Sizes and contrast
A code on a shop window is read from a metre or two, so 10 to 15 cm. On a card or a receipt, 2.5 cm is enough. Keep four modules of white space around the pattern, because on a busy label that margin is the first thing a designer removes and the first thing the scanner needs.
Dark modules on a light background scan more reliably than the reverse. Facebook blue on white is fine for a heading and a poor choice for the pattern itself.
Questions about Facebook codes
Does the code work for people without Facebook?
It opens the website. They see the page and a prompt to log in as soon as they try to like or follow.
Can I link to a post instead of the page?
Yes, any post URL works. A post suits a campaign with a deadline, a page suits something printed on a wall for years.
What happens if I rename the page?
The printed code points at the old address. Facebook keeps a redirect for a while, which is not a promise. Treat a rename as a reason to reprint.
Can I tell whether anyone scanned it?
Facebook counts the visit like any other and cannot separate a scan from a click. A tracking parameter would let you separate them, at the cost of a longer payload and a campaign that expires.