Spectre is based on branch-prediction and cache memory, see [1]. This means that one obvious way to avoid it is to disable branch-prediction, with a performance loss as a result. Another way would be to separate cache memory between different processes. There are probably more clever ways, but that's just to show that the vulnerability can be avoided. Also, early processors such as 6502 and 8086 didn't have the bug, obviously, but should be capable of running web-browsers if performance is not an issue.
[1] https://en.wikipedia.org/wiki/Spectre_(security_vulnerabilit...