NUMBER OF MESHES
Every mesh in model is rendered separately in webGL directly afecting the performance.
Best practice is to merge all meshes in scene together whenever possible.
NUMBER OF FACES
Face in a mesh is a surface between 3 vertices (points).
Number of faces heavily impact render performance.
Best practice is to have as few faces as possible by optimizing mesh.
Mesh can be optimized via decimation/optimization plugins or manualy by merging nearby vertices (points).
COLLIDABLE FACES
Faces of collidable meshes cost 3 times more than renderable faces, since collision calculation is very expensive on face dense meshes and calculated on server, directly impacting hosting expenses.
If blueprint has collsion support like in case of buildings, best practice is to design model in a way that separates collidable and renderable meshes.
Best to have collidable meshes contain only faces that needs collisions and put all small detail faces into renderable meshes.
TEXTURE AREA
Texture area in blueprints stats is a summary of all model texture areas divided by 512*512 block.
Textures use up the most of video memory, therefor the best practice is to have as few textures as possible and to make texture size adequate to mesh size (larger the mesh and base size, larger the texture needed to look good).
In case of building blueprints its possible to use world materials instead of custom, therefor reducing number of needed textures, as world material textures are not included in final model and do not add to texture area and to injection price.
FILESIZE
Large file sizes make loading models long and miserable.
Best practice is to make GLB/GLTF model as light as possible.
The heaviest part of GLB/GLTF filesize is embedded textures, therefor reducing texture file sizes should make model lighter.
Best to avoid using uncompressed .png format (unless indexed png)