This and avoiding require in your .emacs. When packages are autoloaded on demand emacs starts up quickly. As a quick test try emacs -q” to see if something in your .emacs is the cause of the slowdown.
To add to this excellent point; a common culprit is not using ~use-package~ correctly to lazy-load as much as you can. I use Emacs extensively for all my languages and have loads of packages installed, but the startup time is around half-a-second on a newish Ryzen laptop running Nix from a cold restart.