Ciao, non per forza hai bisogno di mettere dei link per aprire i media in altre pagine, potresti invece bloccare il caricamento stesso di ciascuno e avviare in seguito il caricamento e la riproduzione/visualizzazione con i dovuti controlli.

Per gli audio e i video puoi applicare l'attributo preload="none" direttamente sul relativo tag e mandare in play tramite i controlli:
HTML <audio> preload Attribute
HTML <video> preload Attribute

Per le immagini puoi usare l'attributo loading="lazy" che sostanzialmente forza il caricamento solo quando l'elemento immagine entra nel campo visivo (più o meno quanto hai pensato tu stesso ma senza bisogno di ulteriori codici):
HTML <img> loading Attribute

Fai sapere se può andare bene.
Buon proseguimento