In cPanel, by default, the root domain of your account is the “/home/$account/public_html” folder. Addon domains and subdomains are placed into subfolders within that folder.
My preference is to place the root domain in a subfolder as well. But there is no simple way to do that in cPanel or WHM. But it can be done.
Using SSH, log in to your cPanel account. Then go to the /var/cpanel/userdata/$account folder. So if your account name is “bill” then you could “cd /var/cpanel/userdata/bill”.
Edit the root domain files, so if you domain is “bill.com” then you would edit the “bill.com” file and the “bill.com_SSL” file. Change the “DocumentRoot” value to where you want the domain files to live on your server, ie: “/home/bill/public_html/bill.com” (make sure the folder exists).
When you are done editing both files, run “/scripts/rebuildhttpdconf” and restart Apache.