A reliable workflow
Use moving light to test relief direction
A flat area should react uniformly while the light moves. A dent that becomes a bump when light crosses vertically is a strong Y-convention clue.
Keep vector textures out of sRGB
Normal textures must be read as vector data rather than sRGB color; gamma decoding bends the stored components before normalization.
Trace seams beyond the image border
Seams can originate in the image, UV split, tangent basis, compression, mip generation, or mismatched mirrored geometry.
Use a normal map viewer as a controlled diagnostic
Begin in the normal map viewer with a plane and a single light so the expected response is easy to follow. Move the light left to right, then top to bottom, while watching an asymmetric groove or bevel. Change to a sphere to reveal discontinuities and excessive strength, and use a repeated plane to expose border seams. The channel view can identify clipping or a nearly flat blue channel, but no histogram can prove the Y convention. A normal map viewer is most useful when every test changes one variable and the expected result is known in advance.
Separate file evidence from renderer evidence
The normal map viewer reads the uploaded pixels as vector data and can reveal malformed channels, non-unit directions, border differences, and likely inversion. It cannot reproduce every mesh tangent basis, mirrored UV island, importer, mip filter, or platform compression format. If the browser result is stable and the engine result is not, preserve the file and compare import color space, normal-texture classification, UV set, tangent generation, green-channel setting, and compression. That sequence prevents the normal map viewer from being used to fix an engine configuration problem by unnecessarily altering good source pixels.