For modern sites, you can save them as a PnP package. This is fairly easy to do using PnP PowerShell.
Connect to your site using Connect-PnPOnline -Url https://tenantName.sharepoint.com/sites/siteExample, then use Get-PnPProvisioningTemplate to create the PnP package. From there, you can create a new site, use Connect-PnPOnline to the new site, then apply the PnP package to the new site using Apply-PnPProvisioningTemplate.