Working out whether it is the CPU or GPU (or rare occassions, VRAM) is the first thing to look for.
Having a SpriteFont showing FPS, CPUUtilisation, GPUUtilisation is very useful, put on a Debug layer that always follows the game.
(Specifically a SpriteFont as this is more lightweight than a frequently-changing Text object).
Sometimes mobile devices don't report the GPU stat, but if CPU seems fine, then can assume GPU.
One quick big performance boost would be to set your project's Fullscreen Quality to "Low", and experiment with smaller project resolution (e.g. if you're designing at 1920x1080, try halving this - Even if it breaks your project's visuals, keep an eye on the SpriteFont, see if the FPS is better).
If FPS does improve, you could make a little system, utilising "System>Set Canvas Size", to make a "Quality" setting for your game's options, where it would scale down the Canvas size depending on a percentage (e.g. if your game is 1920x1080 and laggy, then players can set the Quality to 50%, which renders the game at 960x540, which may give a huge performance boost, but may look blurry).
Ofcourse, a "sweet spot" could be found, maybe 70% quality, where the blurry rendering isn't noticable.
Only downside is, you may have to rework parts of your project to adapt with this system.
----
Beyond that, there's common things, can measure on your desktop preview - Use Debug preview and monitor the CPU/GPU usage, see which event sheets/groups use the most CPU.
Check object counts, make sure they're not too high, maybe for mobile it may be best to keep below 300 objects (give or take), plus it is dependant on what those objects are doing (are they 300 visible sprites testing collisions every tick, or 300 Arrays doing nothing, the former being far more performance draining).
How much is onscreen at 1 time, could it be lowered? Could a "settings" option lower things (e.g. lower particle counts and decals). Also, sometimes you can "combine" things onscreen to gain performance (e.g. a top-down game with lots of explosion debris on the ground, can use a Drawing Canvas object to paste all this, then it's more "1 Drawing canvas that looks like 200 sprites", rather than "draw 200 sprites".
Effects are quite expensive, but it's dependant on which effect. E.G. Additive blend won't affect too much, although others may.
Layers with "Force Own Texture" are expensive, use as little as possible. Note - Some effects will automatically make a layer "force own texture" even if you have not ticked this on the layer - Click your layer and look for "Uses own texture", if it's Yes, then that's a performance-hogging layer!
Scirra keep an updated guide on performance tips, maybe you've seen it before, but worth re-reading - There's always a lot to remember with this topic, so worth reiterating and thinking about your own project: construct.net/en/make-games/manuals/construct-3/tips-and-guides/performance-tips