ScreenshotNeo

BlogHow-to

How to Make an Online Photo Gallery

Create an online photo gallery by curating images, choosing the right platform, setting privacy and downloads, then testing and sharing the link.

By the ScreenshotNeo team1 October 20269 min read

Direct answer: Choose a platform for your audience, prepare a curated set of web-ready photos, create a gallery or album, arrange the images, add titles and captions, set visibility and download permissions, test it on desktop and mobile, then publish and share the link.

The best setup depends on the job:

  • Public photography portfolio: use a branded website with a custom domain, strong layouts, SEO controls, and room for inquiries or sales.
  • Private client delivery: use password or named access, download controls, image protection, and link management.
  • Family or event album: use simple sharing with an unguessable link or invited people.
  • Existing WordPress site: add a Gallery block and keep the gallery inside the site you already manage.

1. Define the gallery’s purpose and access level

Decide who should see the photos before choosing a tool. A public portfolio should be easy to discover and represent your brand. A client gallery should limit access and make downloads deliberate. A family album usually values speed and simple sharing over custom design.

Use case Priorities Access to choose
Portfolio Branding, custom domain, layout, SEO, inquiries Public
Client delivery Password, download permissions, protection, sales Password or named access
Family or event Fast upload, easy sharing, collaboration Invited people or unguessable link
Print or service sales Purchase settings, product pages, contact forms Public or controlled access

2. Prepare the photos before uploading

  1. Select a coherent set and remove duplicates, near-duplicates, and technically weak images.
  2. Rotate incorrectly oriented files and arrange them by project, event, subject, or narrative sequence.
  3. Keep original high-resolution files in a separate archive. Upload web-ready copies so pages load quickly.
  4. Use descriptive filenames such as smith-wedding-ceremony-01.jpg instead of camera-generated names.
  5. Write a short gallery description and useful captions. Add alt text where the platform supports it.
  6. Decide whether public commercial work needs a watermark. Squarespace documents watermark overlays as a way to reinforce ownership when images are shared elsewhere.

3. Choose a platform

Platform Best fit Documented workflow and controls
Squarespace Branded photographer website Gallery sections and blocks, asset-library uploads, custom domains with Whois privacy and SSL, watermarking, SEO practices, and selling prints or services.
SmugMug Client delivery and print sales Organizer → Create → Gallery (or Upload → Into New Gallery), unique titles, visibility and access settings, photo protection, social sharing, and purchase settings on eligible plans.
Wix Albums where permissions and downloads matter Choose a design, upload photos, and share. Albums support Everyone or Password holders, visitor sharing, single-photo and whole-gallery downloads, and SEO controls. Wix recommends disabling SEO for password-protected albums.
WordPress People who already manage a WordPress site Add the Gallery block, select or upload images from the device or Media Library, and create the gallery.
Google Photos Fast family or event sharing Create a shared album and share with specific people or an unguessable link. You can remove collaborators and reset or disable link sharing.
Square Online Portfolio, event, or product galleries Use gallery and slideshow sections.

Compare platforms on branding and domain control, private access and link revocation, download permissions, layout flexibility, upload workflow, SEO, collaboration, commerce, and current plan limits. Verify current prices and limits on each vendor’s pricing page before publishing a buying recommendation.

Squarespace

  1. Add a gallery section or gallery block.
  2. Upload from the asset library, then choose the layout and ordering.
  3. Add a title, description, captions, and alt text.
  4. Connect a domain and configure SEO, watermarking, inquiries, or print sales if needed.

SmugMug

  1. Open Organizer and choose Create → Gallery, or upload directly into a new gallery.
  2. Set the title, visibility, access, photo protection, social sharing, and purchase settings available on your plan.
  3. Arrange the photos and test the client-facing link.

Wix

  1. Create an album and choose a design.
  2. Upload and arrange the photos.
  3. Set access to Everyone or Password holders.
  4. Choose whether visitors can share, download one photo, or download the whole gallery. Disable SEO for password-protected albums when appropriate.
  5. Use Pro Gallery when displaying images on a Wix site.

WordPress

  1. Edit the page or post where the gallery belongs.
  2. Insert the Gallery block.
  3. Select existing Media Library images or upload new ones.
  4. Set columns, crop behavior, links, captions, and ordering, then publish.

Google Photos

  1. Create a shared album and add the selected photos.
  2. Invite specific people or enable link sharing.
  3. For privacy, remove collaborators and turn off link sharing. Anyone who already has a shared link can view the album until link sharing is disabled.

Square Online

Add a gallery or slideshow section, upload the photos, arrange them, and publish the page with the rest of your site.

5. Set privacy, downloads, and protection

  • Public galleries: enable indexing only when discovery is intended. Use descriptive titles and alt text.
  • Client galleries: require a password or named access where supported, decide whether visitors can download individual files or the entire set, and rotate access when the project closes.
  • Link sharing: treat an unguessable URL as convenient access, not absolute privacy. A recipient can forward it.
  • Downloads: offer web-size files for previews and full-resolution files only when the client needs them.
  • Watermarks: consider them for public commercial work, while remembering that screenshots and copied files cannot be fully prevented.

6. Preview, publish, and share

  1. Open the gallery on a phone and desktop. Check cropping, orientation, captions, spacing, and loading behavior.
  2. Test the share URL in a private browser window or while signed out.
  3. Verify that passwords work, downloads match your policy, and private galleries are not indexed when they should be hidden.
  4. Publish the gallery and send the shortest useful message with the link, access instructions, and download deadline if relevant.
  • Remove expired client links and rotate passwords after delivery.
  • Update captions, alt text, and project descriptions as work changes.
  • Keep an original archive separate from web copies and maintain a second backup.
  • Review old public galleries for broken links, missing images, and outdated contact details.
  • For large collections, split galleries by project or event so visitors can find images and pages remain responsive.

After publishing, you may need a full-page image of the gallery for a proposal, archive, social preview, or QA report. A browser automation script can do this, but it must handle page loading, lazy images, cookie banners, popups, and responsive viewports.

DIY browser approach

Use a browser automation tool such as Playwright or Puppeteer to open the public gallery, wait for images to load, dismiss consent UI, set a viewport, and save a full-page screenshot. The exact implementation depends on your language and deployment environment; make sure your script waits for lazy-loaded images and uses a stable selector before capture.

9. Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. Send one GET request to capture a published gallery as PNG, JPEG, WebP, or PDF. Before capture it accepts cookie and consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets. Each step can be turned off.

Only clean shots are billed. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and the response reports the result with X-Page-Verdict and X-Billed headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" \
  -d access_key=YOUR_API_KEY \
  --data-urlencode url=https://example.com/gallery \
  -o gallery.webp

Python

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://example.com/gallery"},
    timeout=90,
)
r.raise_for_status()
open("gallery.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://example.com/gallery'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot failed: ${res.status}`);
const fs = await import('node:fs/promises');
await fs.writeFile('gallery.webp', Buffer.from(await res.arrayBuffer()));

See the ScreenshotNeo documentation for the complete parameter set. Useful gallery options include full-page capture with lazy images loaded, a CSS-selector element capture, dark mode, device presets or custom viewports, retina scale, PDF paper size and margins, custom CSS and JavaScript, click-before-capture, hide selectors, waits for a selector, delay, or network idle, blocking ads or resource types, custom headers and cookies, timezone and geolocation, transparent backgrounds, resizing, caching with a chosen TTL, signed links for public <img> tags, async jobs with signed webhooks, bulk capture of up to 100 URLs per call, and the usage API.

ScreenshotNeo accepts parameter names used by other screenshot APIs, which can simplify a migration. It offers 1,000 shots per month free with no card; paid plans start at $5 for 3,000 shots. Yearly billing gives two months free, and every feature is available on every plan. Create a free ScreenshotNeo account.

10. Troubleshooting

Problem Likely cause Fix
Gallery looks fine on desktop but not phone Fixed-width layout, oversized files, or poor crop settings Use a responsive layout, test common phone widths, and upload appropriately sized web copies.
Private gallery is appearing in search Indexing remains enabled Disable SEO or indexing controls. Wix specifically recommends disabling SEO for password-protected albums.
People cannot download photos Downloads are disabled or restricted to signed-in users Check gallery permissions and test both single-photo and whole-gallery downloads.
A shared album is still visible to someone An old link remains active Turn link sharing off, remove collaborators, and create a new link if necessary.
Images load slowly Original files are too large or too many images load at once Generate web-ready copies, split very large sets into galleries, and use lazy loading where available.
Screenshot contains a cookie banner or popup The capture ran before the overlay was handled In DIY automation, wait for and dismiss the element. With ScreenshotNeo, consent banners, newsletter popups, and chat widgets are removed before capture.
Screenshot is blank or times out The page failed to load, requires authentication, or is blocked by a bot check Check the public URL, required headers or cookies, and wait settings. ScreenshotNeo returns verdict headers and does not bill blank pages, timeouts, failed loads, or bot checks.
Lazy-loaded photos are missing from a full-page capture The page was captured before scrolling or image loading completed Wait for network idle or the gallery’s image selector, or use ScreenshotNeo full-page capture with lazy images loaded.

11. Performance, reliability, and cost notes

  • Performance: resize uploads, preserve the originals elsewhere, avoid loading hundreds of full-resolution files at once, and split long events into logical galleries.
  • Reliability: test links while signed out, keep backups, and document who can change passwords or revoke access.
  • Privacy: password and named access reduce casual exposure but cannot stop a recipient from forwarding access or copying an image.
  • Capture cost: screenshot pricing varies by service and plan. ScreenshotNeo bills only clean shots, provides verdict and billing headers, includes caching, and has a free tier of 1,000 shots monthly with no card.
  • Vendor plans: confirm current storage, bandwidth, gallery, and commerce limits on the platform’s pricing page before committing.

12. FAQ

What is the simplest way to share an album?

Google Photos is the fastest documented route for a family or event album: create a shared album and invite people or use an unguessable link.

Use password or named access where available, disable indexing, choose download permissions deliberately, and revoke or rotate access when delivery ends.

If branding, a custom domain, inquiries, SEO, or selling services matter, a hosted website such as Squarespace is a strong fit. If you already run WordPress, its Gallery block keeps the work in your existing site.

Can I stop visitors from copying photos?

No web gallery can guarantee that. Watermarks, restricted downloads, lower-resolution previews, and controlled access reduce casual copying.

Capture one when you need a fixed visual record, a proposal preview, a QA artifact, or a social image that should not change when the live gallery is edited.