Why this workflow exists.
Blogging is the highest-leverage marketing a wedding photographer has, and almost nobody does it — because doing it right used to take a week per post. Renaming eighty files by hand. Writing alt text at midnight. Guessing at SEO. So the galleries pile up unpublished, and the couples searching for your venues book someone else.
This is the system I built to fix that at my own studio. Claude does the repetitive 90% — cataloging images, renaming files, optimizing, drafting, technical SEO, vendor emails. I stay on the 10% that actually needs me: taste, story, and hitting Publish. One afternoon per post, and lately less than that.
What it assumes: your blog lives either on a self-hosted WordPress site (Path A — most photographers) or on a custom-built site you own the code to (Path B — where I've landed). The workflow forks at the drafting stage and rejoins for outreach; everything else is shared. Path B users can skip the plugin talk below.
The first thirty minutes (one-time setup).
Everything after this runs for years. Set it up once:
- Claude desktop app, Cowork mode. Download the Claude app, open a Cowork session, and give it access to the folders where your image exports and job docs live. Cowork is what lets Claude actually work your files, not just chat about them.
- Claude's Chrome extension, connected. This is how Claude drives WordPress — uploading images, building galleries, filling Yoast fields — in your own logged-in browser. Install it, sign in, done.
- WordPress, dressed for the job. Yoast SEO (free is enough), a gallery plugin with a justified or masonry layout (I use SimpLy Gallery's Justified), an image compression plugin (Imagify, ShortPixel, or similar), and a caching plugin.
- Job docs somewhere findable. Google Drive works. Dates, venue, vendor list, timeline, questionnaire answers. Claude will mine these so you don't have to.
- A staging folder. One folder — Blog Staging — where you drop a curated export per wedding: 30–70 web-size selects, not the full gallery. This folder is the on-switch for the whole machine.
Get Wispr Flow — talk-to-type for your Mac. The narrative parts of this workflow (the story notes, the planning tips, your corrections to Claude's drafts) are faster spoken than typed, and your dictated voice sounds more like you than your typing does. I use it for nearly every instruction in this guide.
Gather the story before touching images.
Pull the job doc: date, venue, guest count, vendor list, and any notable moments — cultural traditions, special locations, surprises. This is what separates a real post from a captions-under-photos gallery dump. If the couple filled out a questionnaire, mine it for one or two personal details to anchor the narrative.
Then make the one decision that shapes everything: what kind of post is this?
- A venue pillar post — "[Venue] Wedding Photographer," featuring one to three weddings at the same venue. These rank for the highest-intent searches on the internet: couples who booked the venue, have a date, and are now shopping for a photographer.
- A couple-story post — when the questionnaire hands you a real story, tell it. These rank for the couple's names, get shared by everyone at the wedding, and win you referrals and social proof. They're also simply better reading.
You don't have to pick a side — a healthy blog runs both. Venue posts win search. Couple posts win hearts and referrals. My rule of thumb: if the story is strong, tell the story; the venue keywords still come along for the ride in filenames, alt text, and the opening paragraph.
Curate, then let Claude catalog every frame.
Pick 30–45 images that tell the day in order: details, getting ready, first look, portraits, ceremony, reception design, first dance, party. For a pillar post, 10–17 per featured wedding is plenty. Then have Claude look at every image and build a catalog — that catalog drives everything downstream: filenames, alt text, section placement.
Here's the folder of selects from the [venue] wedding in my Blog Staging folder. Open every image and build a catalog: for each file, one line describing exactly what's happening, who's in it, and the setting. We'll use this catalog for renaming, alt text, and placing images into sections of the post.
SEO-rename every file.
Camera filenames like AKS03726.jpg tell Google nothing. Descriptive slugs tell it everything: sunset-ceremony-kiss-brooklyn-waterfront-wedding.jpg. The rules:
- Describe the actual moment in the frame — the catalog from step ii makes this automatic.
- Rotate your keywords across the set — venue name, neighborhood, city, style — instead of repeating one phrase forty times. Repetition looks spammy to Google.
- Keep the couple's names out of most filenames, and here's why: nobody searches filenames for couples — they search for venues. The post itself ranks for the couple's names. Use their names on one or two hero shots, no more.
- No two filenames should be near-duplicates.
Using the catalog, rename every file in the folder as a descriptive SEO slug of the actual moment — lowercase, hyphens, .jpg. Rotate the venue name, neighborhood, city, and style keywords across the set so no phrase repeats heavily and no two filenames are near-duplicates. Keep the couple's names out of all but one or two hero shots.
Optimize for web.
Heavy pages don't rank and don't get read. Claude writes and runs a batch script so you never open an export dialog: resize to 1500px on the long edge, progressive JPEG around quality 82, strip the camera EXIF (your gear list and GPS don't belong on the internet), and embed fresh metadata — image title, description, your studio as artist, your copyright. Target 100–350 KB per file; a 40-image post should weigh under 10 MB before your compression plugin's final pass.
Write and run a script over the renamed folder: resize every image to 1500px long edge, save as progressive JPEG around quality 82, strip all EXIF including GPS, and embed metadata — title and description from the catalog, artist "[Your Studio Name]", copyright "© [year] [Your Studio Name]". Target 100–350 KB per file and flag any that come out heavier.
Here the road forks: two paths to publish.
Everything above — the job doc, the catalog, the renaming, the optimizing — is identical for everyone. What happens next depends on where your website lives.
- Path A — WordPress. Steps v through vii below. If your blog runs on WordPress (most photographers'), this is your path: Claude drafts in WordPress, builds the galleries, and runs the Yoast pass.
- Path B — your own custom site. If your site is hand-built — including one Claude built for you — skip steps v–vii entirely and use the single Path B prompt further down. No CMS, no plugins, no media library: Claude Code writes the post as a page of your actual site and deploys it. This is the path I'm on now.
Both paths rejoin at step viii — vendor outreach and publishing work the same everywhere.
Path A · Draft the post — like a person wrote it.
The structure that works, in order:
- An opening paragraph that sells the venue and the day — your primary keyword appearing naturally in the first hundred words.
- H2 sections following the arc of the day (or one H2 per wedding in a pillar post), each with three to six sentences of actual narrative. Write like a person, not a brochure.
- A gallery under each section, so photos sit next to the story they belong to.
- A planning-tips section written from your photographer's POV — light at that hour, timeline advice, where the portraits happen. This is content your competitors don't have, because they weren't there.
- Centered vendor credits with a link to every vendor's website.
- A clear CTA linking to your contact page.
Draft the blog post in WordPress using the job doc and the image catalog. Structure: an opening that sells [venue] with "[venue] wedding" appearing naturally in the first 100 words; H2 sections following the day's arc, each 3–6 sentences of warm, human narrative — no brochure language; a planning-tips section from my point of view as the photographer; centered vendor credits with links; a closing CTA to my contact page. Here are my story notes: [dictate two minutes of what you remember about the day].
That last bracket is where the post stops sounding like AI and starts sounding like you. Open Wispr Flow and just talk about the day for two minutes — the moment during the toasts, what the light did at the ceremony, what the planner pulled off. Claude weaves it in, and that texture is what no template can fake.
Path A · Upload, alt text, galleries.
Upload the renamed images, then set alt text on every single image — one sentence describing what's in the photo, with the venue or location woven in where it reads naturally. Alt text is the strongest image-SEO signal you control — stronger than filenames. Then build one gallery per section (justified or masonry layouts handle mixed portrait and landscape without cropping) and place each under its heading.
Upload the optimized images to the WordPress media library. Set alt text on every image — one natural sentence from the catalog describing the photo, including the venue or location where it fits without stuffing. Then build one justified gallery per section of the draft and place each gallery under its matching H2.
Path A · The technical SEO pass.
- Focus keyphrase in Yoast — "[venue] wedding" — and work it to the light green.
- A short slug: /venue-name-wedding-photographer beats a twelve-word auto-slug every time.
- SEO title and meta description written for the click, not just the keyword. The description is ad copy; treat it that way.
- Real categories — never publish Uncategorized. Close comments unless you enjoy moderating spam.
- Featured image set — and know that most themes crop it, so pick a frame that survives a center crop.
Path B · Publish to a custom-built site.
If your site is your own code — static HTML on Netlify or similar, the kind of site Claude can build you in a weekend — steps v, vi, and vii collapse into one prompt to Claude Code. There's no media library to upload to and no SEO plugin to appease, because the page itself is the SEO: Claude writes the post as a real page of your site, in your site's exact design, with the title tag, meta description, and alt text baked in.
Full disclosure of my bias: this is exactly how I publish my own posts now. My studio site left WordPress-and-builder land entirely, and every post since has shipped through this prompt.
Using the optimized images in [staging folder], the image catalog, and the job doc, create a new blog post page for the [venue] wedding that matches my site's existing post design exactly — same fonts, nav, footer, and gallery style as my other posts. Structure: an opening that sells [venue] with "[venue] wedding" naturally in the first 100 words; H2 sections following the day's arc, each 3–6 sentences of warm, human narrative; a gallery under each section with the images in day order; a planning-tips section from my point of view as the photographer; centered vendor credits with do-follow links; a closing CTA to my contact page. Set a short clean URL slug, a click-worthy title tag and meta description, and alt text on every image from the catalog. Add the post to my blog index page with a thumbnail, add it to the sitemap, then deploy and send me the live link to review. Here are my story notes: [dictate two minutes of what you remember about the day].
One prompt, one review, live. The technical SEO checklist from step vii still applies — short slug, title written for the click, venue keyphrase early — Claude just does it in the page code instead of a plugin sidebar. If you don't have a custom site yet and you're curious what that even looks like, I wrote about rebuilding mine — two days, no code knowledge, $636 a year back — in the Journal.
The first time you run this, tell Claude Code to copy the structure of your best existing post page and treat it as the template — "match this page's layout exactly, change only the content." That one sentence is the difference between a blog that looks hand-built and a blog that drifts into a new design every week.
Vendor outreach — the multiplier.
Before publishing, draft one email per vendor announcing the feature. Tell them three things: the post targets Google searches for the venue, so couples will find their name there; they're getting a do-follow backlink; and they're welcome to share the images with credit. Offer a mini gallery. A planner who shares your post to her audience is free distribution and a future referral — this step is worth as much as the post itself.
One rule: only link vendors you've confidently identified from the job doc. A wrong link is worse than no link.
From the vendor list in the job doc, draft one email per vendor in Gmail — leave them all as drafts for my review. Each one: congratulate them on the wedding, tell them they're featured and linked in my upcoming post targeting [venue] searches, mention the do-follow backlink, invite them to share the images with credit, and offer to send a mini gallery of their work from the day.
Publish and distribute.
Publish. Spot-check the live page on your phone — galleries, load speed, the featured image crop. Send the vendor emails. Then pin three or four images to Pinterest linking back to the post (still a major traffic source for wedding content), and share it to Instagram Stories with a link.
What to expect — honestly.
Venue posts typically take three to six months to rank. That's not the workflow failing — that's how Google works. Which is exactly why cadence beats brilliance: the photographer who publishes weekly for a year owns fifty keyword combinations while everyone else is still perfecting their second post. Don't judge this system at post two. Judge it at post twenty, when venue searches start landing on you every week without you touching anything.
Automate the cadence.
The biggest SEO failure mode isn't bad posts — it's no posts. So take yourself out of the loop. In Claude you can create a scheduled task that runs on whatever rhythm you want (weekly is ideal, biweekly is fine):
Set up a weekly scheduled task, Mondays at 9 AM: check my Blog Staging folder for a new prepped wedding folder. If one exists, run my blog workflow on it — analyze and SEO-rename the images, optimize them for web, draft the post in WordPress using the matching job doc for vendors and details, set the Yoast fields and categories, and prepare vendor outreach drafts in Gmail. Leave everything as drafts and message me a summary for review.
On Path B, the schedule is the same idea pointed at your repo instead of WordPress: swap the middle of that prompt for "build the post page in my site's code using my Path B prompt, add it to the blog index, and deploy as a draft link" — everything else, including the Gmail vendor drafts, stays identical.
After that, your entire recurring job is: drop a curated folder in staging, review what Claude prepared, hit Publish. The human stays on quality control. The machine does the repetitive 90%.
You don't have to feed this thing weekly — you can load it months ahead. Spend one afternoon curating five or six weddings into your Google Drive staging folder, each in its own subfolder with any story notes or special instructions dropped in as a text file alongside the images. The weekly task picks up one folder per run, works through the queue in order, and suddenly you're a month and a half ahead of your publishing cadence — while you're off shooting. Batch the curation once; let the calendar do the discipline.
The single best SEO tip I have.
Consistency beats brilliance. One good post every week for a year — fifty posts targeting fifty venue and keyword combinations — will outrank five perfect posts published in a burst and then silence. Google rewards sites that publish steadily, and every venue pillar compounds: your blog gradually becomes the place every couple searching "[venue] wedding" ends up. Pick a cadence you can sustain, automate the grunt work, and don't break the chain.
A close second: go after venue keywords, not photography keywords. "NYC wedding photographer" is a bloodbath. "[Specific venue] wedding" is a search made almost exclusively by couples who booked that venue, have a date, and are actively hiring vendors — and there are hundreds of venues with almost nobody competing for them.
The one-page checklist.
- Job doc pulled — date, venue, vendors, questionnaire details
- Post type chosen — venue pillar or couple story
- 30–45 selects curated in the staging folder (10–17 per wedding for pillars)
- Claude's image catalog built
- Every file SEO-renamed — keywords rotated, no near-duplicates
- Images optimized — 1500px, ~q82, EXIF stripped, metadata embedded, 100–350 KB
- Post drafted — keyword in first 100 words, narrative H2s, planning tips, vendor credits, CTA
- Alt text on every single image
- One gallery per section, placed under its heading
- Path A: Yoast green — keyphrase, short slug, click-worthy title and description; real category, comments closed, featured image survives the crop
- Path B: title tag + meta description set, short slug, post added to blog index and sitemap, deployed
- Vendor emails drafted — one per vendor, links verified
- Published — checked live on mobile
- Vendor emails sent, 3–4 pins on Pinterest, shared to Stories
Want more systems like this?
This guide is one system of many. The newsletter is where I share the rest — pricing breakdowns, new tools, and the occasional unfiltered take. And when you're ready to rebuild the whole business, that's what coaching is for.
