Une photo destinée au web ne doit pas dépasser 1000 px en largeur, dimension d'une fenêtre de navigateur standard évolué. En-dessous peut être déjà très suffisant.

Une première solution donc pour réduire drastiquement le poids du fichier.

D'autre part, le jpeg présente la particularité de compresser (une compression destructive, attention!) en fonction de l'image.
Le principe est relativement simple. Le compresseur parcourt les pixels juxtaposés. Lorsqu'il en trouve plusieurs de la même teinte, ils n'en forment plus qu'un. Plus le taux de compression est élevé, plus le compresseur prendra de pixels proches en teinte mais de plus en plus éloignés en fonction du taux choisi fabriquant ainsi des rectangles de plus en plus grands, c'est là qu'on commence à voir la compression. Même principe en MPEG. (Qui n'a pas déjà vu les artefacts rectangulaires de compression sur une vidéo trop compressée?)
Une image comportant de très nombreux détails se compressera donc moins qu'une image présentant des surfaces unies.
Un dégradé se transformera en bandes.
Un grand rectangle uni deviendra un fichier tout petit.

Ouvrir et réenregistrer le jpeg le détruit de plus en plus. Toujours repartir donc du fichier initial. De toute façon je conseille sur une échelle de 1 à 10 de ne pas compresser plus que 6, sur échelle de 1 à 12 comme dans Photoshop, se contenter de 8.

Il y a d'autres formats de fichier de compression NON destructrice comme le PNG ou le ZIP mais pas lisibles par toutes les configurations. Le GIF réduit le nombre de couleurs de l'échantillon. Pour du N&B, cela peut convenir.