Put page-number buttons inside <nav aria-label="pagination">, with aria-current="page" on the current one. Label Previous/Next clearly with text (icon arrows alone aren't enough), and disable them on the first/last page.
Often compared with infinite scroll. Pagination gives a sense of position — "I'm on page 3" — and supports bookmarking and sharing, while infinite scroll lets you browse without interruption but makes it hard to return to a specific item. It differs from a carousel: a carousel cycles content itself as slides, while pagination splits list data into browsable pages.
With many pages, don't list them all — show a few around the current page plus the first/last numbers with "…" ellipses in between.