Nationality should be about building a community, so nationality should be given if the parents have an effective connection to the country. For this reason I think the best solution is combining nationality "by blood" (i.e. if one of the parents is a national), restricted "jus soli" (i.e. children of permanent residents get the nationality too), and, as an exception, I believe children that would otherwise be stateless should get nationality on birth to fix the glaring human rights issue.
As for children naturalisation, I believe any child that does most of mandatory schooling in a country should automatically get nationality.
This being said, I also believe that very few rights and duties should be restricted to nationals. People shouldn't have to live in fear of having their entire life upturned or not have access to services and social support just because they have the wrong passport.