USEARCH uses the BLAST definition of identity, which is the number of identities divided by the number of alignment columns. This is the definition used by most bioinformatics programs.
See -id option for rules that determine when a pair of letters match.
With a global alignment, columns containing terminal gaps are discarded before calculating identity. Internal gaps always count as differences.
Different programs may report different 
identities for the same sequences
The pair-wise identity between two sequences depends on the alignment and 
the definition of identity. Alignments vary due to the use of different 
parameters such as gap penalties and substitution scores. Definitions of 
identity used by different programs may vary depending on the treatment of gaps 
and detailed rules for deciding whether letters match (e.g., upper- and 
lower-case and wildcards).
USEARCH, BLAST and CD-HIT definitions of %id
An 
"identity" is a column with two matching letters.
USEARCH and BLAST = Identities / Columns
CD-HIT = Identities / (Length of shorter sequence)
Problems with the CD-HIT definition
For historical reasons, versions 5 and earlier of USEARCH used the CD-HIT 
definition of identity. In versions 6 and later, the BLAST definition is used. I 
made the change because I felt the CD-HIT definition had several important 
weaknesses. The CD-HIT definition is not symmetrical between the longer and 
shorter sequence. Gaps in the longer sequence reduce %id but gaps in the shorter 
sequence do not. Gappier alignments therefore tend to have higher identities 
according to CD-HIT compared to other methods, and the CD-HIT %id correlates 
less well with evolutionary distance. A measure of %id that counts gaps as 
differences is more robust against the choice of alignment parameters (gap 
penalties and substitution matrices).