Start with the most constrained line
A line with many clues has fewer valid completions. Scan it before a mostly empty line, since one placement often creates another forced move nearby.
Mark every pair before counting
Pairs and sandwiches are visual and fast. Resolve them first, then update the counts. This order reduces mental bookkeeping.
Count both values
Do not count only 1s. A line can be forced because it has reached its limit of either value, and the overlooked count is often the next move.
Alternate rows and columns
Every move changes two lines. After filling a row cell, inspect its column immediately instead of finishing a full horizontal sweep first.
Compare nearly complete lines
A row with two blanks may look ambiguous until you compare it with a completed row. Uniqueness can remove one full pattern even when no local triple appears.
Keep assumptions short
On a Very hard board, test one value only until it produces a clear rule violation. Long speculative branches are harder to audit and easier to misread.
Restart the scan after each move
A new value can create a pair, complete a count, or remove a duplicate candidate. Returning to simple rules is usually faster than pushing deeper logic too early.