To make sure you can setup the QR Code to be readable and to encode the data you need, there are several important things you need to understand about QR Codes, and several things you should follow to make sure that QR Code are readable.
QR Code Specifications and Limitations
- QR Code has limit on how much data it can encode. One QR Code can hold 7000 8-bit characters. But, depending on the encrypted data, one letter is often taking place of 2 or 4 characters, making realistic encoding limit of a single QR Code to about 3000 letters of text. But, the more content is inside the QR Code, it would be harder to read, and would require much larger size of the code.
- Size of the QR Code is very important, and if you want to have readable QR Code it has to have appropriate size that depends mostly on the encoded text inside the code. The more text, the bigger QR Code should be. Phone camers that are mostly used to read QR Codes can be very precise, but that has limits.
- Error correction of the QR Code and Minimum Version or Range are very important settings that will help make the QR Code more readable. There are 4 error correction levels, each one adding up to 30% of error correction elements to encryption. Minimum Version is related to the size of the packing of the dots in the QR Code, and it goes from 1 to 40 levels.
- QR Code can have an image/logo placed on top of the code to make it prettier, or to include visual branding. But, having the image will affect the code readability. Depending on the image size, you need to proportionally make the QR Code bigger, and you need to have less text to encode.
- Color for dots and color for background must not be close, or the QR Code will be unreadable. Best combination is black dots on the white background, but other combinations will work fine. Again, color affect on readability depend on the content of the QR Code. Some older phones will have trouble reading QR code that uses light color dots on the dark background, or the multicolor variants.
- QR Code can have rounded dots, but that also makes the code harder to read, depending on the content inside the code.
QR Code Recommendations
- Always make sure to have Error Correction set to highest level!
- If you are encoding a lot of content, make sure not to use image/logo and make sure not to use rounded dots. Also, make the QR Code at least 400px is size or more. If you encode vCard 4.0 into QR Code, that is something that can be considered as a lot of content, so for vCard 4.0, do not use image/logo or rounded dots.
- Best combination for display purposes and best readability is to have black and white QR Code.
- Best way to render QR Code is to have it as SVG (plugin settings for QR Code Layout, have Render method, and it should be set to SVG for best results). SVG is more precise (it is a vector), and it can be resized properly on display, making it easier to read.
- If you are adding image/logo to place on the QR Code, make sure to use small image (up to 400×400 px, and optimized the best it can be). For best results, use images under 16KB. Big images will need longer to process and apply to the QR Code.
- If you are using QR Code to encode only basic data, up to 500 characters (URL, Geo Location, phone number…), you have more freedom in using rounded dots, image/logo on QR Code and more. The more data you want to encode, the QR Code limitations are bigger problem.
- The QR Codes generated by this plugin are made for display on screen, and nothing else – they are not suited for use in print. For printing purposes, you need high resolution codes, with proper size to have all dots clearly visible on the paper for reading. If you need QR Codes for printing, use professional services that can generate high resolution codes and can test prior to printing.
vCard and vCard 4.0 Limitations
- Plugin is encoding vCard and vCard 4.0 content based on official specifications.
- Some applications and devices can have various limits on how they are processing QR Code with vCard, and a lot of data can be skipped as unsupported.
- iPhone has trouble with the non english characters in both vCard and vCard 4.0 formats, with vCard 4.0 having a bit better support.
- iPhone also doesn’t support most of the advanced fields in vCard 4.0. iPhone technically, supports only vCard 3.0 format, and it can import some things from vCard 4.0, but not everything.
- Android has better support for vCards than iPhone, and it can import most of the things, but it can’t import profile image (URL to contact image/avatar).
- Both Android and iPhone can import profile image from vCard, if that image is embedded as BASE64 file inside the vCard. But, that would make vCard way to big and over the limit for the QR Code, so the only way for QR Code based vCard to have profile image is via URL. This is the limitation of the QR Code total size of the encoded content. Until the phones get support for importing profile image via URL, this is not going to change.
- The plugin can only encode the vCard content as it is porovided, it can’t do anything else – it can’t force devices to properly use vCard, that depends on the device.
Basic Troubleshooting Guide
- If you add QR Code as a shortcode, that shortcode is passed to the plugin for processing with all other shortcodes. So, until that happens, it is possible that other plugins and other code is modifying shortcode content, and the resulting QR Code can be invalid. So far, this has been noticed for email addresses inside the QR Code shortcode, and there are plugins that are used to protect email in the WordPress content – and these plugins run before the shortcodes are processed, so they can replace normal email address with the encoded email where each character of email is converted to the ASCII entities. If you use any plugin that modifies content before the shortcodes are run, you can have problems with the generated QR Code.