Shared Albums for Google Photos (by JanZeman)
Shared Albums for Google Photos (by JanZeman)
Description
Shared Albums for Google Photos (by JanZeman) allows you to easily display publicly shared Google Photos albums in your WordPress posts and pages using a simple shortcode. The plugin uses the modern Swiper library to provide a beautiful, touch-enabled gallery experience.
Note: This plugin is not affiliated with or endorsed by Google LLC. Google Photos™ is a trademark of Google LLC.
Features
- Google Photos Gallery And Slider – Display public Google Photos albums as responsive galleries or sliders
- Photo And Video Support – Supports both images and videos from shared Google Photos albums
- Fullscreen Viewer – Mobile-friendly fullscreen viewing with touch gestures, keyboard controls, and slideshow support
- Photo Info Overlays – Dynamic placeholders for counters, filenames, dimensions, dates, and EXIF data
- Download And Link Buttons – Optional inline and fullscreen action buttons
- Performance Features – Lazy loading, progressive loading, caching, and large album support
- Shortcode Playground – Admin-only sandbox on the Settings page for experimenting with
[jzsa-album]shortcodes and previews - Mosaic Strip – Optional mosaic thumbnail strip alongside the main viewer, including a fullscreen mosaic mode
Many more customization parameters and samples are available on the plugin’s Settings & Onboarding page.
How It Works
The plugin fetches your public Google Photos album and creates a responsive gallery. Simply paste the share link from Google Photos into the shortcode.
Security & Error Handling
- SSRF protection – validates Google Photos URLs
- Proper output escaping for XSS prevention
- WordPress coding standards compliant
- Swiper library bundled locally
- User-friendly error messages for invalid album links
Usage
Basic Usage
[jzsa-album link="https://photos.google.com/share/AF1QipOg3EA51ATc_YWHyfcffDCzNZFsVTU_uBqSEKFix7LY80DIgH3lMkLwt4QDTHd8EQ?key=RGwySFNhbmhqMFBDbnZNUUtwY0stNy1XV1JRbE9R"]
Common Example
[jzsa-album link="https://photos.google.com/share/AF1QipOg3EA51ATc_YWHyfcffDCzNZFsVTU_uBqSEKFix7LY80DIgH3lMkLwt4QDTHd8EQ?key=RGwySFNhbmhqMFBDbnZNUUtwY0stNy1XV1JRbE9R" mode="slider" corner-radius="16" show-link-button="true" show-download-button="true"]
Shortcode Parameters
The only required parameter is link – the Google Photos share URL.
All other parameters are optional.
This readme intentionally keeps shortcode examples short to avoid drift.
For the complete and current parameter reference, defaults, inheritance rules, a very very large number of customization parameters, many samples, and the shortcode playground, use the plugin’s Settings & Onboarding page in WordPress admin:
Settings -> Shared Albums for Google Photos
Getting Your Album Share Link
- Open Google Photos and select an album
- Click the share button (or three-dot menu > Share)
- Click “Create link” or “Get link”
-
Copy the album share link and paste it into the shortcode:
[jzsa-album link=”https://photos.google.com/share/AF1QipNxLo…”]
Important: The album must be public (shared via link) for the plugin to access it.
Credits
Privacy Policy
This plugin does not collect or store any user data.
Use of external Google services
- The plugin fetches public Google Photos album pages from
https://photos.google.comand image files from*.googleusercontent.comin order to render the galleries. - Only publicly shared album links are supported; the plugin has no access to private albums or any content that is not already available via a public share link.
- The plugin does not collect, store, or transmit user credentials or personal data. It only caches album HTML and image URLs in WordPress transients for performance, and this cache is stored locally in your WordPress database.
Support
- Bug reports: Open an issue on GitHub
- Feature requests: Post on the support forum
- Leave a rating: Review on WordPress.org
- Buy Me a Coffee: buymeacoffee.com/janzeman
Installation
- Install & Activate the plugin
- Open the plugin’s Settings & Onboarding page. It includes a very very large number of customization parameters, many samples, and a live shortcode playground.
- Start with a sample there, then use your own Google Photos albums in posts and pages.
Screenshots

Slider mode with navigation and paging

Slider mode with mosaic strip

Gallery mode

Carousel mode (also shows the video capability)

Fullscreen mode with description and EXIF info overlay

From low- to high-resolution image support

Every sample includes a live preview - edit and see the result immediately

Description with custom font

Fullscreen mosaic support

Mosaic strip in the overlay mode
Faq
No, the album must be shared publicly via a link. Google Photos does not provide API access to private albums without OAuth authentication.
The plugin can handle up to 300 photos per album. This is a limitation from Google Photos, which typically returns around 300 photos in the initial page load.
For performance and stability reasons, very old iOS devices using legacy WebKit may automatically be limited to 25 photos on the client side, even if the server-side limit is higher. All other platforms (desktop, Android, modern iOS/iPadOS) can use the full per-album limit you configure.
No. The plugin uses lazy loading, progressive image loading, and local bundled frontend assets. Album data is cached, and the refresh interval is configurable with cache-refresh (default: 7 days).
Yes! You can override the CSS by adding custom styles to your theme. The main container class is .jzsa-album.
Absolutely! The gallery is fully responsive and supports touch gestures (swipe, pinch-to-zoom).
When enabled with show-download-button="true", a download button appears in inline (non-fullscreen) view. Clicking it downloads the current full-resolution photo to your device. The download uses a server-side proxy to bypass CORS restrictions from Google Photos.
Use fullscreen-show-download-button to control the fullscreen download button separately. If omitted, it inherits from show-download-button.
In fullscreen mode, a play/pause button appears above the photo counter at the bottom center. Click it or press the spacebar to toggle slideshow on/off. The button shows a play icon (▶) when paused and a pause icon (⏸) when playing. This works regardless of the fullscreen-slideshow setting – if slideshow is disabled, the button lets you start it manually.
The cache is automatically cleared when you save the post, so changes take effect immediately.
The plugin provides clear feedback:
Errors (gallery won’t display):
– Invalid URL: Not a valid Google Photos link
– Album is private or link expired: “Unable to Load Album” error
– Empty album: “No Photos Found” error
Reviews
EXCELLENT, BUT one suggestion
By luisbenitez777 on April 23, 2026
I'm just hoping that in the future a fullscreen-mode=mosaic, can be added to preview the smaller photos in addition to the main image. It's a beautiful plugin; you can tell there's effort and dedication behind it. I truly find it gorgeous. 5 STARS. ¡GRACIAS!
Works as described. Good UX!
By naveenbachwani on April 9, 2026
The Shared Albums for Google Photos plugin by Jan Zeman has been terrific for my photo blog, making it effortless to pull photos from Google Photos into my gallery pages without the hassle of manual uploads.
I also suggested a few feature requests to suit photographers' needs. Jan was not only prompt in his response, but soon pushed an updated release that included those improvements!
This plugin is well worth using and deserves five stars.
Ottimo plugin
By imaginans on March 31, 2026
Per l'incorporamento degli album pubblicati su Google Photos è di gran lunga il miglior plugin che ho trovato. Great job. Thanks, Jan
PS. If you could enter the name of the photo that would be great
Excellent for Digital Signage slideshows
By sandefjordtk on March 30, 2026
Sandefjord Tennis Club uses Shared Albums in Google Photos to display slideshows on Digital Signage in our clubhouse. This is a great way to showcase photos—not only on our webpage and social media but also when members and guests visit our club facilities.
Tips on how to use this: Create a page in WordPress for the album you would like to display. Example of shortcode to use with cache refresh set to 1 hour.
[jzsa-album link="YOUR URL HERE" mode="slider" show-title="true" show-counter="false" width="1920" height="1080" source-width="1920" source-height="1080" slideshow="true" slideshow-delay="5" interaction-lock="true" start-at="random" cache-refresh="1"]
Remember to choose template "Page Builder Full Width", "no sidebar", "disable navigation" and "disable Footer" in the Page Settings
Add the following CSS code to remove the white space on the top of the page
.pagebuilder-section {
padding: 0 0 !important;
}
Extra: Add the following CSS code to add a nice title on the page. Adjust the size of the font as necessary
.jzsa-album .swiper-pagination {
font-size: 70px !important;
font-weight: bold !important;
color: #000000 !important;
background-image: linear-gradient(
to bottom,
rgba(255,255,255,0) 0%,
rgba(255,255,255,1) 25%,
rgba(255,255,255,1) 75%,
rgba(255,255,255,0) 100%
);
}
Also I recommend resizing photos to 1920x1080 px in Google Photo album to make sure the photos are displayed correctly. If you are using a WordPress caching-plugin, make sure the page is excluded from caching.
Add the website to your favorite Digital Signage system. I recommend AbleSign as they provide Digital Signage for free with unlimited # of screens.
This is a really easy way to display your photo album, not only on your WordPress homepage, but anywhere you can think of where you can display a webpage!
Amazing functionality and support
By toonwolf on March 22, 2026
I recently started using the Shared Albums for Google Photos (by JanZeman) plugin, and it has been a game-changer for my WordPress site. It is a really feature-rich, easy-to-use tool that makes it incredibly simple to display photos from Google Photo Albums without the usual headache of manual uploads or complex API configurations.
What impressed me even more than the plugin itself was the developer’s responsiveness. I had a couple of suggestions for some minor feature tweaks, and Jan was super fast in responding. Not only did he listen to the feedback, but he actually improved and released a new version of the plugin with those exact improvements in record time.
If you are looking for a modern, responsive way to showcase your Google Photos—backed by a developer who genuinely cares about the user experience—I cannot recommend this plugin enough. Really impressive work! 5 stars from me...
Nice, but ...
By GMRobbins on January 29, 2026
I was excited to see your plugin in the new section here and downloaded it. to check it out.
It was an easy install with good instructions with easy-to-understand shortcodes. It took a while to get the yellow and red banners away, but I learned more about the shortcode with each try. If I may offer an opinion on some of the features, I liked the image quality and speed. I ran through most of the shortcodes; I was hoping gallery mode meant a grid of images with pagination. In carousel mode, I feel it would be best, if clicking on one of the 3 panel images, it took you to that particular image's full, non-cropped image.
I am not sure if any of these suggestions could be accomplished by shortcode, but I thought I would give you some feedback. Appreciate your work!
Changelog
2.1.8
- Fullscreen support of mosaic. Many thanks
@luisbenitez777for sharing the idea. - Warning added: Google truncates descriptions to 100 chars. Thanks
@naveenbachwanifor the detailed repro steps.
2.1.7
- Fixed info-wrap bug
2.1.6
- Fixed slider mode getting stuck on loading spinner (regression from 2.1.5)
2.1.5
- Reworked Guide page loading to reduce blocking and improve responsiveness
- Improved cache/help guidance on the settings page
- Big thanks to
@naveenbachwanifor detailed testing, UX observations, and support-thread feedback
2.1.4
- Screenshots added
2.1.3
- Add “How the cache works” section
- Improve Guide page loading experience
2.1.2
- Make caching description more clear and prominent
2.1.0
- Settings page moved to top-level admin menu with subpages for easier navigation and reference
- Google Photo description can be supported after all 🙂
- Introduce a halo effect to improve text readability
2.0.11
- Swiper loop navigation
2.0.10
- Lighter loading for large sliders
2.0.9
- New
fullscreen-display-max-widthandfullscreen-display-max-height - New
info-wrapand info text alignment parameters - New
gallery-buttons-on-mobilebehavior for touch devices - Responsive layout improvements
2.0.8
- File name bug fix
2.0.7
- New dynamic photo info overlays
- EXIF placeholders with background loading
- Slider, carousel, gallery and fullscreen photo info
- All Settings page samples are editable by now, not only the Playground
2.0.6
- Touch devices: Controls appear on tap and fade out on inactivity
2.0.5
- Fullscreen vs inline controls
- Video download support
- Download UX & settings improvements
2.0.4
- New: Mosaic thumbnail strip (
mosaic="true") for slider and carousel modes - Mosaic feature inspired by Mateusz Starzak’s fork
- Added
fullscreen-background-color(default#000) to control fullscreen background separately - Fixed gallery mode where
show-download-button="true"did not render the download button - Fixed slideshow option logic: use
disabled,manual, orautoforslideshowandfullscreen-slideshow - Fixed
fullscreen-toggle="click"for video slides in gallery mode - Improved iPhone pseudo-fullscreen behavior, including fullscreen arrow navigation
- Added restore-to-last-viewed position when closing fullscreen
- Thanks to Peter and Ulf for detailed bug reports and testing
2.0.3
- New parameter: “cache-refresh”
- Clear Cache button added
2.0.1
- Fixed album titles being truncated (dates and special characters are now preserved)
2.0.0
- Gallery mode support
- Experimental video support
- Shortcode parameters and their default values changed (Breaking. Apologies!)
1.0.6
- New animated logo
1.0.3
- Improved Settings page with more intuitive onboarding and richer, example-driven documentation
- Added Shortcode Playground on the Settings page to test and preview
[jzsa-album]shortcodes without leaving admin
1.0.2
- Initial Settings page and onboarding content
1.0.1
- Release related improvements
1.0.0
- Initial release
- Modern Swiper 11 library integration
- Fullscreen mode with dedicated button
- Play/pause button in fullscreen with spacebar keyboard shortcut
- Download button with server-side proxy (optional, disabled by default)
- Zoom support (pinch on touch devices)
- Keyboard navigation (arrows to navigate, spacebar to play/pause in fullscreen)
- Lazy loading for optimal performance
- Progressive image loading with error recovery and placeholders
- Click-to-fullscreen option
- Random start position for galleries
- SSRF protection and proper escaping
- WordPress coding standards compliance
- 24-hour caching mechanism
- User-friendly error messages for invalid album URLs
- Responsive design with touch gestures