There is not much right or wrong with word order in German. There are some rules, there are even some rules that contradict each other.
The "standard" word order is, as you say, SPO, just like in English, or rather:
Subjekt > Verb
Dativ-Objekt >
Akkusativ-Objekt >
freie adverbiale Bestimmung >
gebundene adverbiale Bestimmung | Genitivobjekt | Präpositionalobjekt >
Prädikativ
If you deviate from this "normal" order, a sentence doesn't necessarily turn wrong, as long as you do it with reason.
Your example sentence can be modified (and remain valid, if you know what you're doing) into
- Ich habe dich immer geliebt - This is the standard word order, doesn't say anything beyond the pure words and doesn't emphasize anything.
- Dich habe ich immer geliebt (aber die andre geheiratet). Puts emphasis on "dich"
- Immer habe ich dich geliebt (auch wenn es manchmal nicht so aussah). Emphasizes "immer"
- Geliebt habe ich dich immer (aber auch manchmal gehasst). Emphasizes "geliebt"
- Ich habe immer dich geliebt (much like 2)
(I might have left out one or the other valid permutation).
The only strict condition is that the verb (habe) is in position 2. This variation of word order is used to mark or emphasize specific parts, maybe because you want to pick up on them later in the text and prepare the listener already. In case you don't (or didn't actually intend to emphasize something specifically), this might, however, sound weird to native speakers - They would expect some sort of continuation after this (I have put some possibilities in parentheses) and would be sort of baffled if you don't deliver. So if unsure, use [1], that is the safest way.