Back in the day the swap partition recommendation for most UNIX systems was 4x physical RAM. About 15-20 years ago it was updated to 1x-1.5x-2x depending on the application because more UNIX systems served apps that were sensitive to waiting for pages to be brought back from disk, i.e. web servers, etc., and fewer UNIX systems were used for time sharing like they were in the past. For systems with DBMS, 1x or no swap whatsoever. Any paging will kill database performance.
Machines with faster processors today can suffer significant performance hits due to paging because disks (including SSD and NVMe) haven't enjoyed the same performance improvement that CPUs and RAM have over the years. Ideally one wants to keep active paging to a minimum.
Sending pages to disk and never referencing them again, for instance MB or GB swap used but no or very minimal paging I/O is acceptable. When I was an IBM mainframe systems programmer, IBM's rule of thumb was, anything over 5% of system resources used to service page-ins and page-outs is too much and one will need to upgrade RAM. On Solaris and FreeBSD like to keep scan rate below 200 pages per second. Avoid page-outs. Five or ten pages per second consistent over a long period of time should be maximum. Multiple swap partitions across multiple disks across multiple controllers will help performance on memory constrained systems.
Page-ins are another matter since it uses paging I/O to read program binaries into memory using mmap(). If you see page reclaims (re in vmstat), this tells you that the machine is short of RAM but before the pages could be written out to swap they were referenced by an app making them active again; the machine is on the cusp of needing a RAM upgrade -- order additional RAM now.
Never worry about free pages (fre in vmstat). The free pool has a range the kernel is happy with. When fre drops below a threshold scan rate increases, looking for pages to place on the page-out queue. And, greater than 200 pages per second scan rate suggests you may need to install more RAM.
Higher scan rates means younger pages in memory (IBM reported the oldest page age, the inverse of the scan rate). Lower scan rates mean old pages will reside in RAM for longer -- there is plenty of RAM. ZFS ARC and UFS UBC compete for pages with processes. Memory not used by apps will be used by UFS UBC and ZFS ARC as cache to reduce re-reads of the same data of disk, greatly improving performance. Paging and its underlying hardware (dynamic address translation) is not necessarily a straightforward subject. All operating systems attempt to manage pages similarly using LRU (least recently used algorithm) each implemented differently by their developers.
Adding RAM is probably the best investment a person can make for any computer system.