← back to Thesetdecorator
TSD SEO: backfill og:site_name on 23 pages with OG blocks but missing it
443a9c7e973d45c8ff0e7bc19c21119ccb48765b · 2026-06-03 12:31:53 -0700 · Steve
20 indexable pages (+3 noindex'd internal that also had OG blocks) had
og:image/og:title/og:type but no og:site_name — the property social platforms
show as the source name on a share card. Inserted '<meta property=og:site_name
content=The Set Decorator>' before og:image (matching the order on pages that
already had it). Idempotent scripts/og-site-name-backfill.py; verified 0
indexable pages still missing it, no dupes. Invisible (head meta). Static —
rides the queued deploy.
Files touched
M public/_best-seller-detail.tpl.htmlM public/art-review.htmlM public/cleared-artwork-sale.htmlM public/collections-by-steve.htmlM public/decorator-k-c-fox.htmlM public/decorator.htmlM public/fancy-search.htmlM public/games.htmlM public/itinerary.htmlM public/job-board.htmlM public/license-terms.htmlM public/logo-agent.htmlM public/logo-variants.htmlM public/mood-board.htmlM public/resources.htmlM public/stories.htmlM public/submit.htmlM public/team-k-c-fox.htmlM public/trades.htmlM public/union-talk.htmlM public/unions.htmlM public/video-demo.htmlM public/wall-treatments.htmlA scripts/og-site-name-backfill.py
Diff
commit 443a9c7e973d45c8ff0e7bc19c21119ccb48765b
Author: Steve <steve@designerwallcoverings.com>
Date: Wed Jun 3 12:31:53 2026 -0700
TSD SEO: backfill og:site_name on 23 pages with OG blocks but missing it
20 indexable pages (+3 noindex'd internal that also had OG blocks) had
og:image/og:title/og:type but no og:site_name — the property social platforms
show as the source name on a share card. Inserted '<meta property=og:site_name
content=The Set Decorator>' before og:image (matching the order on pages that
already had it). Idempotent scripts/og-site-name-backfill.py; verified 0
indexable pages still missing it, no dupes. Invisible (head meta). Static —
rides the queued deploy.
---
public/_best-seller-detail.tpl.html | 1 +
public/art-review.html | 1 +
public/cleared-artwork-sale.html | 1 +
public/collections-by-steve.html | 1 +
public/decorator-k-c-fox.html | 1 +
public/decorator.html | 1 +
public/fancy-search.html | 1 +
public/games.html | 1 +
public/itinerary.html | 1 +
public/job-board.html | 1 +
public/license-terms.html | 1 +
public/logo-agent.html | 1 +
public/logo-variants.html | 1 +
public/mood-board.html | 1 +
public/resources.html | 1 +
public/stories.html | 1 +
public/submit.html | 1 +
public/team-k-c-fox.html | 1 +
public/trades.html | 1 +
public/union-talk.html | 1 +
public/unions.html | 1 +
public/video-demo.html | 1 +
public/wall-treatments.html | 1 +
scripts/og-site-name-backfill.py | 40 +++++++++++++++++++++++++++++++++++++
24 files changed, 63 insertions(+)
diff --git a/public/_best-seller-detail.tpl.html b/public/_best-seller-detail.tpl.html
index 21c985c..37b97b0 100644
--- a/public/_best-seller-detail.tpl.html
+++ b/public/_best-seller-detail.tpl.html
@@ -11,6 +11,7 @@
<link rel="canonical" href="__CANONICAL__">
<meta property="og:title" content="__TITLE__ — __VENDOR__">
<meta property="og:description" content="Production-vetted wallcovering. Preview on set, request swatch.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="__IMAGE__">
<meta property="og:type" content="product">
<script type="application/ld+json">{"@context":"https://schema.org","@type":"Product","name":"__TITLE__","brand":{"@type":"Brand","name":"__VENDOR__"},"sku":"__SKU__","image":"__IMAGE__","description":"Production-vetted wallcovering from the top 20% of Designer Wallcoverings' actual orders. Cleared for production use; fast-print delivery in LA basin."}</script>
diff --git a/public/art-review.html b/public/art-review.html
index a23c8df..69018de 100644
--- a/public/art-review.html
+++ b/public/art-review.html
@@ -163,6 +163,7 @@
<meta property="og:url" content="https://thesetdecorator.com/art-review.html">
<meta property="og:title" content="Art Review — TSD">
<meta property="og:description" content="Art Review — TSD">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/cleared-artwork-sale.html b/public/cleared-artwork-sale.html
index e731c6c..1054d9c 100644
--- a/public/cleared-artwork-sale.html
+++ b/public/cleared-artwork-sale.html
@@ -60,6 +60,7 @@
<meta property="og:url" content="https://thesetdecorator.com/cleared-artwork-sale.html">
<meta property="og:title" content="Cleared Artwork · For License — The Set Decorator">
<meta property="og:description" content="Original cleared artwork by Steve Abrams — film/TV use rights, royalty-free per show. Photography, painted scenes, period composites.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/collections-by-steve.html b/public/collections-by-steve.html
index 6760d70..a1b3fa7 100644
--- a/public/collections-by-steve.html
+++ b/public/collections-by-steve.html
@@ -79,6 +79,7 @@
<meta property="og:url" content="https://thesetdecorator.com/collections-by-steve.html">
<meta property="og:title" content="Collections by Steve · Cleared Artwork — The Set Decorator">
<meta property="og:description" content="Original photography by Steve Abrams, grouped by city and month. Royalty-free film/TV use rights — license direct, instant download, no model releases needed.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/decorator-k-c-fox.html b/public/decorator-k-c-fox.html
index d24e758..9ea6347 100644
--- a/public/decorator-k-c-fox.html
+++ b/public/decorator-k-c-fox.html
@@ -57,6 +57,7 @@
<meta property="og:url" content="https://thesetdecorator.com/decorator-k-c-fox.html">
<meta property="og:title" content="K.C. Fox — Set Decorator, SDSA Founding Member (1954–2024) — The Set Decorator">
<meta property="og:description" content="Karen Cynthia">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/decorator.html b/public/decorator.html
index ec27b95..d8a817d 100644
--- a/public/decorator.html
+++ b/public/decorator.html
@@ -14,6 +14,7 @@
<meta property="og:url" content="https://thesetdecorator.com/decorator.html">
<meta property="og:title" content="Set Decorator Profile — The Set Decorator">
<meta property="og:description" content="Set Decorator Profile — The Set Decorator">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/fancy-search.html b/public/fancy-search.html
index 936678e..05bdcb9 100644
--- a/public/fancy-search.html
+++ b/public/fancy-search.html
@@ -43,6 +43,7 @@
.legal-flag { font-size: 0.7rem; color: #b58a4e; }
</style>
<meta property="og:url" content="https://thesetdecorator.com/fancy-search.html">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/games.html b/public/games.html
index 94d3da9..1365d65 100644
--- a/public/games.html
+++ b/public/games.html
@@ -13,6 +13,7 @@
<meta property="og:description" content="Party games for film set-decoration lovers.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://thesetdecorator.com/games">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&family=Inter:wght@400;500;600;700&display=swap">
<link rel="stylesheet" href="/css/games.css">
diff --git a/public/itinerary.html b/public/itinerary.html
index c48749e..6967360 100644
--- a/public/itinerary.html
+++ b/public/itinerary.html
@@ -52,6 +52,7 @@
</style>
<meta property="og:url" content="https://thesetdecorator.com/itinerary.html">
<meta property="og:description" content="Build a working day of stops — prop houses, rental sources, vintage shops, theatre resources, union offices, and entertainment attorneys — ordered, exportable, and mapped.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/job-board.html b/public/job-board.html
index 78129f7..f6ef4ab 100644
--- a/public/job-board.html
+++ b/public/job-board.html
@@ -15,6 +15,7 @@
<meta property="og:url" content="https://thesetdecorator.com/job-board.html">
<meta property="og:title" content="Job Board — The Set Decorator">
<meta property="og:description" content="Open set-decoration positions submitted by working production designers and decorators, plus auto-extracted production signals from the trade-news corpus.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/license-terms.html b/public/license-terms.html
index 79a7f48..69e5f36 100644
--- a/public/license-terms.html
+++ b/public/license-terms.html
@@ -48,6 +48,7 @@
<meta property="og:url" content="https://thesetdecorator.com/license-terms.html">
<meta property="og:title" content="License Terms — The Set Decorator">
<meta property="og:description" content="Plain-English license terms for cleared artwork licensed through thesetdecorator.com. Royalty-Free · Film/TV Use Rights · per-production.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/logo-agent.html b/public/logo-agent.html
index 6ab7902..a01f611 100644
--- a/public/logo-agent.html
+++ b/public/logo-agent.html
@@ -85,6 +85,7 @@
<meta property="og:url" content="https://thesetdecorator.com/logo-agent.html">
<meta property="og:title" content="Logo Agent — Hot-or-Not Design Tournament">
<meta property="og:description" content="Pick a logo by tournament. Rank 3 variants, top 2 breed a new third, repeat until convergence. Or hit Set & Go and let the agent auto-pick. Seasonal palettes sourced from Pantone, WWD, and wholesale-furniture publications.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/logo-variants.html b/public/logo-variants.html
index c57f500..d77a0dc 100644
--- a/public/logo-variants.html
+++ b/public/logo-variants.html
@@ -184,6 +184,7 @@
<meta property="og:url" content="https://thesetdecorator.com/logo-variants.html">
<meta property="og:title" content="Logo Showdown — TSD">
<meta property="og:description" content="Head-to-head logo picker. Pick a winner, chat with the design, crown the champion.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/mood-board.html b/public/mood-board.html
index b1da092..a967235 100644
--- a/public/mood-board.html
+++ b/public/mood-board.html
@@ -43,6 +43,7 @@
<meta property="og:url" content="https://thesetdecorator.com/mood-board.html">
<meta property="og:title" content="Mood Board — The Set Decorator">
<meta property="og:description" content="Upload a room photo, drop in product images, drag/resize/rotate to compose. Built for set decorators presenting a working look — not pretty for its own sake.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/resources.html b/public/resources.html
index 6cde744..6bf4537 100644
--- a/public/resources.html
+++ b/public/resources.html
@@ -33,6 +33,7 @@
<meta property="og:url" content="https://thesetdecorator.com/resources.html">
<meta property="og:title" content="Resources — The Set Decorator">
<meta property="og:description" content="Trade publications, union/guild contacts, theatre organizations, entertainment attorneys, and production directories — one place for working set decorators to find the right next click.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/stories.html b/public/stories.html
index 7460d56..b018d7f 100644
--- a/public/stories.html
+++ b/public/stories.html
@@ -15,6 +15,7 @@
<meta property="og:url" content="https://thesetdecorator.com/stories.html">
<meta property="og:title" content="Stories — The Set Decorator">
<meta property="og:description" content="Written stories about set decoration. Continuity craft, period research, sourcing, and the working life of the department.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/submit.html b/public/submit.html
index 3ce26c6..051ba19 100644
--- a/public/submit.html
+++ b/public/submit.html
@@ -50,6 +50,7 @@
<meta property="og:url" content="https://thesetdecorator.com/submit.html">
<meta property="og:title" content="Submit your photos — The Set Decorator">
<meta property="og:description" content="Share a Google Drive folder with TSD. We license your face-free photography to film/TV productions. You keep 70%. No upload limits, no exclusivity.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/team-k-c-fox.html b/public/team-k-c-fox.html
index f6477ab..1a42871 100644
--- a/public/team-k-c-fox.html
+++ b/public/team-k-c-fox.html
@@ -45,6 +45,7 @@
<meta property="og:url" content="https://thesetdecorator.com/team-k-c-fox.html">
<meta property="og:title" content="K.C. Fox's Crew — The People Who Built Her Sets — The Set Decorator">
<meta property="og:description" content="K.C. Fox">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/trades.html b/public/trades.html
index fde943a..2d856ad 100644
--- a/public/trades.html
+++ b/public/trades.html
@@ -15,6 +15,7 @@
<meta property="og:url" content="https://thesetdecorator.com/trades.html">
<meta property="og:title" content="Industry News — The Set Decorator">
<meta property="og:description" content="32 trade, celebrity, craft, design, and prestige outlets in one feed — Variety, THR, California Post, Perez Hilton, AD, Vanity Fair, the lot. Filterable, searchable, LLM-ready.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/union-talk.html b/public/union-talk.html
index aa44f3c..945da8f 100644
--- a/public/union-talk.html
+++ b/public/union-talk.html
@@ -14,6 +14,7 @@
<meta property="og:url" content="https://thesetdecorator.com/union-talk.html">
<meta property="og:title" content="Union Talk — The Set Decorator">
<meta property="og:description" content="Shop-talk community for set decorators across every IATSE local and adjacent guild. Per-union threads, regional decorator rosters, relevant industry news, moderated topic queue.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/unions.html b/public/unions.html
index a4b2bf0..253c498 100644
--- a/public/unions.html
+++ b/public/unions.html
@@ -15,6 +15,7 @@
<meta property="og:url" content="https://thesetdecorator.com/unions.html">
<meta property="og:title" content="Unions & Guilds — The Set Decorator">
<meta property="og:description" content="Every IATSE local and adjacent guild representing set decorators across the US and Canada. LA Local 44, NY Local 52, Atlanta Local 479, plus every regional studio-mechanics local.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/video-demo.html b/public/video-demo.html
index 1010f4b..11f90aa 100644
--- a/public/video-demo.html
+++ b/public/video-demo.html
@@ -49,6 +49,7 @@
<meta property="og:url" content="https://thesetdecorator.com/video-demo.html">
<meta property="og:title" content="3-Minute Trade Demo — The Set Decorator">
<meta property="og:description" content="A three-minute walk-through of how working set decorators use The Set Decorator: Fancy Search, itinerary, sources, theatre, entertainment attorneys, and the mood board. Narrated by Bubbe — a fictional set-decoration mentor.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/public/wall-treatments.html b/public/wall-treatments.html
index 63176de..006c6c8 100644
--- a/public/wall-treatments.html
+++ b/public/wall-treatments.html
@@ -15,6 +15,7 @@
<meta property="og:url" content="https://thesetdecorator.com/wall-treatments.html">
<meta property="og:title" content="Wall Treatments — Ombres — The Set Decorator">
<meta property="og:description" content="Hand-pulled gradient ombres in nine traditional palettes — left to right and right to left. Print at any size for set-wall washes and backdrops.">
+ <meta property="og:site_name" content="The Set Decorator">
<meta property="og:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://thesetdecorator.com/img/hero/hero-rendered.jpg">
diff --git a/scripts/og-site-name-backfill.py b/scripts/og-site-name-backfill.py
new file mode 100644
index 0000000..11611b7
--- /dev/null
+++ b/scripts/og-site-name-backfill.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+"""Idempotent: add <meta property="og:site_name"> to TSD pages that have an OG
+block (og:image present) but are missing og:site_name.
+
+20 pages had og:image/og:title/og:type but no og:site_name — the canonical
+site-name property social platforms display on a share card. Insert it
+immediately before the first og:image (matching the order on pages that already
+have it, e.g. about.html: og:url -> og:site_name -> og:image). Site name is the
+canonical "The Set Decorator". Invisible change (head meta only).
+
+Idempotent: skips pages that already have og:site_name or that have no og:image
+anchor. Reversible: single meta line per page.
+ python3 scripts/og-site-name-backfill.py
+"""
+import os, re, glob
+
+PUB = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "public")
+SITE_NAME = "The Set Decorator"
+
+HAS_SITENAME_RE = re.compile(r'property=["\']?og:site_name', re.IGNORECASE)
+OG_IMAGE_RE = re.compile(r'^([ \t]*)<meta[^>]*property=["\']?og:image["\']?[^>]*>[ \t]*\n', re.IGNORECASE | re.MULTILINE)
+
+changed, skipped, noanchor = [], [], []
+for path in sorted(glob.glob(os.path.join(PUB, "*.html"))):
+ name = os.path.basename(path)
+ html = open(path, encoding="utf-8").read()
+ if HAS_SITENAME_RE.search(html):
+ skipped.append(name); continue
+ m = OG_IMAGE_RE.search(html)
+ if not m:
+ noanchor.append(name); continue # no OG block — nothing to complete
+ indent = m.group(1)
+ line = f'{indent}<meta property="og:site_name" content="{SITE_NAME}">\n'
+ html = html[:m.start()] + line + html[m.start():]
+ open(path, "w", encoding="utf-8").write(html)
+ changed.append(name)
+
+print(f"changed ({len(changed)}): {', '.join(changed) or '-'}")
+print(f"skipped/already-have ({len(skipped)})")
+print(f"no-og-block (skipped): {len(noanchor)}")
← 6a3c349 backlog: loop #9 audit — robots/homepage-jsonld clean; orpha
·
back to Thesetdecorator
·
TSD a11y: add autocomplete to personal-identity form fields 818a651 →