Several variants of a string in tables
I decided to do it in the following way:


Make a table strings with an ID and a VARCHAR, which will store both URLs and keywords, both normalized forms and unmodified user input.
Make a table seo which will hold (in addition to the row ID) four numeric fields referring to strings: unmodified user input for URLs and keywords, normalized URLs and keywords.


The list of normalized URL/keyword pair will be generated on the fly using DISTINCT.