In most of the blogs out there – Good reads
https://jammykam.wordpress.com/2015/07/13/seo-friendly-urls-in-sitecore-prevention-is-better-than-cure/ – My Fav
http://reinoudvandalen.nl/blog/using-replacement-characters-in-sitecore-the-right-way/
https://www.cmsbestpractices.com/add-seo-value-by-replacing-spaces-with-dashes-in-sitecore/
you will see how you can tackle LinkManager using to ensure you always have a good SEO friendly URL using <encodeNameReplacements> and how to avoid the side effects of this by ensuring we do not allow hyphen in item names using “InvalidItemNameChars”
Now, there are other problems we will have to deal with. Google does not like duplicate content, which means when two URL’s yield same result, in our case render same item content. It means it is duplication.
But, though spaces are replaced by hyphens internally, it does not do anything when user or say some refferal link some where actually has spaces
For example – www.domain.com/test%20page and www.domain.com/test%20page would yield same page/content
Not Good…Google would not like it!
So, good SEO options are either do a 404 on space version(%20) above or do a 301 re-direct. Canononical links might help a little if you cant do both of the above.
You could also you IIS re-write rules to replace spaces with ‘-‘ instead of %20
Wait for more…