Jakob Nielson’s 10 Usability Heuristics


One of the best ways to ensure the products and digital services we utilise as a university are offering users the best experience is by following Jakob Nielson’s 10 usability heuristics. Jakob is one of the pioneers of User Experience and chief founder of Nielson Norman, the central hub for all things UX related. By following these 10 principles it’s easier to make your digital application easier and more user friendly.

1. Visibility of system status

The system should always keep users informed about what is going on, through appropriate feedback within a reasonable amount of time. For example, a loading icon can be used to indicate that the system is processing information.

2. Match between system and the real world

The system should use language and concepts familiar to users, and follow real-world conventions. For example, using a recycle bin icon to delete files is a common real-world convention that users would understand.

3. User control and freedom

Users should be able to easily undo and redo actions, and navigate the system without feeling trapped. For example, an “undo” button can be used to allow users to revert back to a previous state.

4. Consistency and standards

The system should follow established conventions and design standards, making it easier for users to understand and use. For example, using the same colour scheme, layout and terminology across all pages of a website will help users navigate it more easily.

5. Error prevention

The system should prevent errors from occurring whenever possible, or offer ways to recover from them when they do occur. For example, a form can be designed to prevent users from submitting incomplete or invalid information.

6. Recognition rather than recall

The system should make information and functionality easily visible and accessible, reducing the need for users to memorize or recall information. For example, using icons or visual cues can help users easily locate desired features.

7. Flexibility and efficiency of use

The system should offer both novice and expert users ways to streamline their interactions and increase their efficiency. For example, keyboard shortcuts can be offered for expert users to quickly navigate and perform tasks.

8. Aesthetic and minimalist design

The system should have a visually appealing and simple design, without extraneous or irrelevant information. For example, a clean layout and minimal use of colors and fonts can make a website or application more user-friendly.

9. Help users recognise, diagnose, and recover from errors

The system should provide clear and concise error messages that inform users what went wrong and how to fix it. For example, a message like “Invalid email address” can be displayed when a user enters an incorrectly formatted email address.

10. Help and documentation

The system should provide users with easy-to-access help and documentation, including frequently asked questions (FAQs), tutorials, and user manuals. For example, a search function can be included to allow users to quickly find the help they need.

By Josh Longhurst

I'm a UX Designer at Edinburgh Napier University. I strive to create intuitive and enjoyable user experiences across the University's digital services.

2 replies on “Jakob Nielson’s 10 Usability Heuristics”

Hi Josh,

Thanks for this post – it’s a great set of principles and one I’ll certainly refer back to. One point where I’d advise caution is in relation to point 9 about error messages. If an error message is displayed to an unauthenticated user e.g. because there’s a problem with the information entered on a sign-in page, it shouldn’t give an attacker any hints about the account they’re attempting to authenticate as. The classic example is having two different error messages, one saying “an account with your username does not exist” and the other saying “the password you entered was incorrect”, as these would allow an attacker to know if the username they were attempting was valid for the system. It’s considered preferable to simply give a single error message covering both possibilities e.g. “there was a problem with your sign-in information”. Of course, once a user has been authenticated it’s usually safe to provide more detailed error messages. There’s more information about this on the page about Observable Discrepancy at


Hi Graeme,
Thank you for your comment!
Excellent point and totally agree with that regarding security.