Don't use per-vertex color. Since it is usually only necessary to renormalize when the model-view matrix includes a scaling transformation, consider preprocessing the scene to eliminate scaling. Avoid using multiple lights. There may be a sharp drop in lighting performance when adding lights. Avoid using local lights.
Local lights are noticeably more expensive than infinite lights.
Use positional light sources rather than spot lights. If local lights must be used, a positional light is less expensive than a spot light. Don't change material parameters frequently. Changing material parameters can be expensive. If you need to change the material parameters many times per frame, consider rearranging the scene to minimize material changes.