Rendering costs are a really, really complex topic.
Most of the lighting cost is in the shader itself. For the Standard shader it’s almost entirely how many pixels an object covers on screen. There’s CPU time for assignment of lighting information that can also be avoided with an unit shader (to an extent, Unity seems to do some of it on unlit shaders too if there are lights in the scene), but usually most of the CPU cost is in the drawing of a new thing, regardless of what shader it uses. Apart from real time GI, Unity’s lighting system has to be fast enough to run on old mobile devices, so on modern devices the amount of CPU time that takes is so small to almost be unmeasurable for a scene with 50 objects in it. So basically don’t even worry about that.
Shadows add an additional cost when doing lighting. Again mostly on the GPU, plus the added CPU cost of rendering “more things” in the form of rendering each shadow casting mesh again (or sometimes 5 more times) to generate the camera depth texture and cascaded shadow map.
Additional lights cost extra with the built in forward rendering path as each light renders the object again (potentially multiple times if the lights are shadow casting), costing more CPU and GPU time.
But, again, the major costs are the time it takes the CPU to tell the GPU to rendering, and for the GPU to do the rendering. Culling is used to avoid having to tell the GPU to render something it can’t see, as is occlusion. Though the cost of occlusion can sometimes be higher than the costs to just render it in the first place, so you have to be mindful of that.
When it comes to instancing, or drawing two objects with the same shader. Each object still costs the same on the GPU as if they were rendered alone. Instanced objects are actually often more expensive to render on the GPU than non-instanced. The cost savings here are often almost entirely on the CPU as there are higher costs for issuing multiple individual draw calls vs saying “draw 100 of this one object” (usually), and changing the shader between draw calls makes the successive draw calls more expensive than if the shader didn’t change.
The simplest way to think about rendering costs are:
On the CPU side: how many things are active in the scene that can be rendered, and how many are actually being rendered.
On the GPU side: how complex are your shaders, how many vertices do your models have, and how much of the screen do they cover (how many pixels of that shader are being rendered).
That’s really the biggest things to think about.
Colliders are 100% CPU side, and has nothing to do with the GPU.