LinkedIn Life tab images: 1128x376 main, 900x600 photos
LinkedIn Life tab sizes: main image 1128x376, custom modules 502x282, company photos 900x600 recommended. Request each from Sume at a legal size, then fit.

The Life tab of a LinkedIn Page takes a main image of 1128x376, custom modules of 502x282 and company photos of 900x600 (minimum 264x176). All are PNG or JPEG up to 3MB. The main image is exactly 3:1, so a 1536x512 Sume request scales to it with no crop.
The Life tab sizes
LinkedIn notes that Life tab modules exist only if you have enhanced your Page with Career Pages, and that the dynamic cover slideshow needs a Premium Company Page subscription. The sizes below are from the same table as the Page cover.
| Module | Minimum | Recommended |
|---|---|---|
| Main image | 1128x376 | 1128x376 |
| Custom modules | 502x282 | 502x282 |
| Company photos | 264x176 | 900x600 |
Request sizes that scale cleanly
Sume's GPT custom sizes need both edges to be multiples of 16, a longest edge of at most 3840, a ratio of at most 3:1 and 655,360 to 8,294,400 pixels. Each Life image can be requested at a legal size with the same shape, then scaled down.
| Target | Request | Request shape | Scale factor |
|---|---|---|---|
| 1128x376 | 1536x512 | 3:1 exactly | 0.734375 on both edges |
| 900x600 | 1536x1024 | 3:2 exactly | 0.5859375 on both edges |
| 502x282 | 1280x720 | 16:9 | 0.3921875 wide; crops under 1 px of height |
Fit all three
1536 times 0.734375 is 1128 and 512 times 0.734375 is 376, so the main image keeps its full frame. The 502x282 module is a hair wider than 16:9 (502 divided by 282 is 1.7801 against 1.7778), so the fit trims less than one pixel of height. ImageOps.fit in Pillow handles all three.
import asyncio
from PIL import Image, ImageOps
TARGETS = {
"life-main": ("life-main-1536x512.png", (1128, 376)),
"life-module": ("life-module-1280x720.png", (502, 282)),
"life-photo": ("life-photo-1536x1024.png", (900, 600)),
}
async def main():
for name, (src, size) in TARGETS.items():
img = Image.open(src).convert("RGB")
out = ImageOps.fit(img, size, Image.LANCZOS)
out.save(f"{name}.jpg", "JPEG", quality=92, optimize=True)
print(name, out.size)
asyncio.run(main())Details from the page
Company photos open larger when a member clicks them. LinkedIn warns that if you follow the minimum guideline rather than the recommended one, the image will likely look small there. Use 900x600, not 264x176.
A video can also fill the main image or a custom module through a Vimeo or YouTube URL, and the still shown comes from that video's own thumbnail.
Checklist
- Request main at 1536x512 and photos at 1536x1024.
- Keep each file at most 3,000,000 bytes.
- Upload company photos at 900x600, not the minimum.
Sources
Related posts
More in Use cases
- LinkedIn newsletter logo 300x300 and cover 1920x1080
LinkedIn recommends a 300x300 newsletter logo and a 1920x1080 cover per article. 1080 is not a multiple of 16, so ask Sume for 1920x1088 and trim 4 px.
- LinkedIn profile photo 8 MB, 400-7680 px, plus 1584x396 banner
LinkedIn takes a PNG or JPG profile photo up to 8 MB and 400x400 to 7680x4320 px; the background is 1584x396. How to reach 4:1 from a Sume 3:1 image.
- LinkedIn video ad under 30 FPS and 4:5: what to render
LinkedIn video ads want under 30 FPS and allow 4:5. Sume video models list no 4:5, so render 720x900 at 25 fps in Timeline and check it with video inspect.
- LinkedIn video ad ratios: 16:9, 1:1, 4:5, 9:16 pixel sizes, one table
LinkedIn video ads accept 16:9, 1:1, 4:5 and 9:16 with different pixel rules and under 30 fps. See the table and how to match each ratio on Sume.
Written by Sume