A binary search tree is a binary tree that keeps its values ordered for fast lookup. The ordering rule is the invariant every node must obey.
For any node, all values in its left subtree are smaller, and all values in its right subtree are larger. This must hold for every node, not just direct children. That last part trips people up: a value deep in the left subtree still must stay below the ancestor it descends from.
This invariant is what makes searching cheap. At each node you compare, then discard a whole subtree and follow the other side. Duplicates need a chosen policy, such as always going right or storing a count. Keep the invariant true on every insert and delete, and lookups stay logarithmic on a balanced tree. Break it anywhere and searches can silently miss values that are present.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.