A lot of people tell you that you should only have one page, and I suppose if you are trying to get noticed by people who have very little time, that can be a good approach.
However, what a lot of people seem to be overlooking is that your resume is not only going to be read by a person who is reading it as a resume. It will very likely be scanned into a database, so, important parts of your resume will end up getting chunked out and split up and used as search terms when people are looking for candidates.
Because of that, you want to optimize your resume to be found searchers for the terms that match positions you want.
Don’t be like the black hat SEO folks in the 1990s, though. That is, don’t load up your resume with all kinds of keywords that you think will help you get found in the system. However, you do want to list terms that are applicable to you, rather than just high-level descriptions of the work you’ve done. And adding detail about what you did can be helpful.
I’m particularly thinking about specialized jobs like web development, software engineering, or some other technically specialized line of work where people need to know what platforms and languages you’ve used, what operating system you prefer to work in, etc.
If you leave off those terms, because you’re trying to cram your entire job history into one page, you can certainly do that, however the system won’t have as much to go by when it looks for candidates like you for jobs you want to get if you leave off those terms, because you were trying to fit your entire job history into one page.
Now, if you’re meeting with someone for an actual interview, you can certainly take a shorter version. I have never done that, in fact I have had a five page resume for years. It has never worked against me, as I have been continuously employed pretty much for three decades.
So while it may sound like the official line is, fit it all on one page, it depends on your situation and what you’re trying to achieve with your resume.