It's not easy to optimize and the information out there isn't too great. There's just not much resources on optimizing Godot for mobile devices out there in general. Your mileage may vary.
Viewport scaling - Takes less GPU resources therefore energy than canvas_items. You can test it on an iOS device yourself. It makes a BIG difference for my game.
Expanded Aspect Ratio - Use a square resolution to keep same resolution when in landscape or portrait. Expanded will scale that box accordingly. It is up to you to figure out how to use the very capable UI attributes to do positioning in that box.
Limit nodes - If you are continuously spawning nodes then limit the number of them. Combine with object pooling. Make tradeoffs.
Object Pooling - It is important to use pooling on mobile devices. You may want to pool physics bodies like enemies, GPUparticle effects, projectiles (doesn't matter if Rigid or Area2D) and whatever you can reuse and recycle. Reparenting costs practically nothing from what I've seen in the game.
_process vs _physics_process - Use _process for any cpu oriented calculations. Use _physics_process if you need to interact with the PhysicsServer. For example calling physics bodies movement or collision detection. It makes a BIG difference for FPS. Crazy to see 3-5x decrease in physics time and a very minor time increase in process time in the profiler. Use physics_process sparingly as possible.
Physics Settings - In the project settings, may want to run physics on a separate thread (not sure if this works on mobile). Physics solver iterations could be taken down a notch probably even down to 2 if you don't need accurate detection. Up to you to test performance impact.
Limit particle effects - Generally, games are power hungry because of all the GPU computation. GPUParticles are expensive. Leave particle fixed FPS to 30 as any higher will murder performance. You are better off using cheaper methods like animated sprites/etc. You can add an option for users to switch between low-high particle effects if anything. GPUParticles has a visibility for instance to help.
Node physics processing - Consider lowering physics fidelity for nodes or disabling them when they are out of screen.
Limit Raycast2d - More expensive than other methods such as intersection check, so limit it as much as possible.
Avoid PanelContainer, Panel, TextureRect - Until this is resolved: https://github.com/godotengine/godot/issues/78278. It's unbelievable the massive savings in energy impact when you avoid these costly UI elements.
Avoid ParallaxLayer - or use 2 layers max. Prefer just to not use it on mobile. Refer to:https://forum.godotengine.org/t/how-to-fix-laggy-movement-for-more-than-2-background-layers-in-2d/15983
Atlas Textures - Make heavy use of it to lower GPU cost especially if you use multiple compnoents from the same textures.
These configuration and ideas have decreased energy impact a ton. I was surprised, but happy that the time I spent wasn't wasted.
Important note: Optimize to a point, make trade offs and be satisfied.