We already see that it’s possible to avoid Instagram image compression but what about a way to avoid Facebook image compression?
Facebook nearly uses the same algorithm as Instagram to determine if they need to compress and/or resize your images, Facebook goes a bit deeper than Instagram by checking file dimensions but also removing some useless (to them) metadata.
To add in complexity, Facebook is using different types of image: profile photos, cover photos, highlighted images, shared links, shared images, event images, etc. You also have to handle those differently if you are on a Page or on a Profile …
Important, it must be kept in mind that image displayed on Feed and Page are always scaled down, the full size is used only when in “full-screen mode”, but if you stay within the numbers below they won’t be compressed.
Profile Picture: 180 x 180 px (max. 100 KB*)
Cover Photo: 820 x 310 px (max. 100 KB*)
(i) Smartphone display: 640 x 360 px
Highlighted image: 1200 x 717 px (max 100 KB*)
(i) Page’s display: 843 x 504 px
Shared Link: 1200 x 627 px (max 100 KB*)
(i) Square images: Min. 154 x 154 px
(i) Rectangular images: Min. 470 x 246 px
(i) Square images: Min. 116 x 116 px
(i) Rectangular images: Min. 484 x 252 px
Shared Image: 1200 x 630 px (max 100 KB*)
Event Image: 1920 x 1080 px (max 100 KB*)
(i) Feed display: 470 × 174 px
(i) Highlighted Image: 1200 x 717 px
*Max 100 KB: any images bigger than 100 KB will be compressed by Facebook.
That could be challenging on such dimensions but there are great tools to handle compression, one of my favorites is JpegMini Pro
Facebook owns another set of rules dedicated to Ads, I won’t go over the full specs as they have so many. You can get them all on their Business Ads Guide image section.
Hope this helps and let me know if you have questions.