You need to update to 8 first, solve all errors and deprecations. Be sure to update all marketplace modules.
If you have custom Java code of yourself or supplies, make sure deprecations are gone before moving to 9 as these mostly will become errors. The Mendix 8 Javadocs have pretty good explanations of the deprecations.
Check my blog post here: https://medium.com/mendix/migrate-from-mendix-7-to-8-5426167c15c1
It helps with details of migrating from 7 to 8.
After you have a running mendix 8 version, you can move to 9.
Be sure to commit each step to the repository. Have a working Mendix 7 copy or branch available to check for layout or userlib differences.
As of the latest Mendix 8 versions, the update widget tool in the project / app tools menu works really well.
Upgrading from 8 to 9 is actually more straight forward. Do this in two steps: First get a working Mendix 9 version. After that, migrate your theme to Atlas 3. It is perfectly fine to go live with a Mendix 9 app with Atlas 2 and migrate to Atlas 3 later.
Edit: Check these doc pages:
My experience with migrating from 7 to 8 did not went fine. I was using Atlas UI and when migrated, there issues reported in modeler which I was able to address easily. But when I ran the application, I had lot of styling issues and I m still stuck with that.