PSAM On-Page Audit
palmspringsairmuseum.org — 2026-03-31
Executive Summary
Over the past few weeks we ran a deep technical audit of palmspringsairmuseum.org — a full crawl of every page on the main site and the shop subdomain, plus separate analyses of how the site loads for real visitors on desktop and mobile. The pages that follow walk through what was found, what each finding means in plain English, and what the web team can do to address it.
The headline: the mobile experience is severely compromised. On a typical smartphone, the homepage takes about 24 seconds to finish loading — long enough that most visitors will give up and leave before the page is ready. Desktop loads much faster, but it has its own issue: the page sits frozen for nearly a full second after appearing, while heavy scripts finish running. These aren't subjective complaints — they're measurements from Google's own performance tooling, and Google increasingly factors them into where the museum shows up in search results.
On top of the speed issue, the site's WordPress installation has accumulated a fair amount of technical debt over the years: a sitemap file that doesn't actually deliver a sitemap, hundreds of pages with no preview text in Google search results, dozens of auto-generated tag pages that compete with real content, and a handful of broken navigation links the museum's own menu still points at. None of this is unusual for a WordPress site that's been live and growing for a long time, and none of it is catastrophic on its own — but together they're holding back the museum's reach. The good news is that almost every issue is fixable with focused effort, and the report below identifies which fixes are the highest leverage.
Full Crawl Issues Summary
Content Categories
Content Charts
Every chart on this page lives here. Each visualization is grouped under a heading describing what it shows.
Content Flow — Status to Categories
1,037 content pages split by HTTP status, then the 956 live pages flow into content categories. Events, Blog, and Shop account for 85% of all content.
Content Categories — Bar Chart
Pages broken out by content category, sorted largest to smallest.
Title Length Analysis
Meta Description Coverage
Full Site Content Map — 4 Levels Deep
All 956 live pages flowing left-to-right through the site hierarchy. Shop (226 pages on subdomain) is a dead end — flat product pages with no sub-structure. Blog and Events each drill down to individual content types and aircraft categories.
Duplicate Titles 136 affected pages
Why this hurts: when ten pages share the same title, Google has to guess which one is the "main" page for that topic. Usually it picks one and buries the others — a phenomenon called cannibalization. The buried pages still exist, still cost crawl budget, and still show up in your sitemap, but no one finds them. For a museum site where each Open Cockpit Saturday or Warbird Wednesday post is supposed to attract its own audience, this means months of content quietly going invisible.
Best titling practices for events & recurring posts:
- Lead with the unique part. "F-104 Starfighter — Open Cockpit Saturday, June 7, 2025" beats "Open Cockpit Saturdays — F-104 Starfighter".
- Include the date or sequence number on every recurring event. The date IS the differentiator — without it, ten Saturdays look like one Saturday.
- Keep titles 50–60 characters so Google shows the full title, not a truncated
"…". - One H1 per page matches the page's role. The H1, the title tag, and the slug should tell the same story.
- Drop the boilerplate suffix ("— Palm Springs Air Museum") on internal pages — Google adds the brand for you, and the suffix eats 30 characters of every title.
How to fix in WordPress: open each duplicate post in WP Admin → Posts,
edit the post title, and (if Yoast / Rank Math / All in One SEO is installed) edit the
SEO title field separately so the browser-tab title and the search-result title can
differ. For the Open Cockpit Saturdays specifically, a bulk find-and-replace plugin like
Better Search Replace can append the date to all 19 affected titles in one operation —
but make a database backup first.
| Title | Duplicate Count |
|---|---|
| Open Cockpit Saturdays: F-104 Starfighter – Palm Springs Air Museum | 19 |
| Open Cockpit Saturdays: P-47 Thunderbolt – Palm Springs Air Museum | 19 |
| Open Cockpit Saturdays: P-40 Warhawk – Palm Springs Air Museum | 19 |
| Open Cockpit Saturdays: F4U Corsair – Palm Springs Air Museum | 14 |
| DARKSTAR and NASA X-38 ON VIEW INSIDE HANGAR – Palm Springs Air Museum | 12 |
| Open Cockpit Saturdays: Supermarine Spitfire Mk XIV – Palm Springs Air | 10 |
| Open Cockpit Saturdays: F4F Wildcat – Palm Springs Air Museum | 6 |
| Open Cockpit Saturdays: F7F Tigercat – Palm Springs Air Museum | 6 |
| F-104 Starfighter Open Cockpit – Palm Springs Air Museum | 5 |
| P-47 Thunderbolt Open Cockpit – Palm Springs Air Museum | 5 |
| Supermarine Spitfire Mk XIV Open Cockpit – Palm Springs Air Museum | 5 |
| DARKSTAR & NASA’s X-38 ON VIEW THROUGH APRIL 25 – Palm Springs Air Mus | 4 |
| Darkstar on View – Photo and Video Opportunity – Palm Springs Air Muse | 4 |
| Open Cockpit Saturday’s: Supermarine Spitfire Mk XIV – Palm Springs Ai | 4 |
| P-40 Warhawk Open Cockpit – Palm Springs Air Museum | 4 |
Meta Description Coverage
What a meta description is: the 1–2 sentence preview text that shows up under the page title in Google search results. It doesn't directly affect rankings, but it massively affects click-through rate — whether someone scrolling past 10 search results actually clicks your link or one of the others. Pages with no meta description force Google to auto-generate one from page text, which usually picks something unhelpful like a navigation menu or footer disclaimer.
Today on this site: only 85 of 956 pages have a meta description. That means 91% of the museum's pages are showing up in Google with whatever random snippet Google decided to grab — usually the first words of the page header or sidebar, not a compelling description of the page's actual content.
Best practices:
- 120–160 characters. Google truncates around 155 on desktop, 120 on mobile.
- Lead with what the page is about, not "Welcome to the Palm Springs Air Museum…". The user already knows it's a museum site — that's why they clicked.
- Include the differentiator for that specific page (the aircraft, the event date, the honoree's name) so each result is distinct.
- End with a soft action ("Reserve your seat", "See the exhibit", "Read the full story") to lift CTR.
- Don't duplicate descriptions across pages. A duplicate meta description is just a slightly subtler version of duplicate titles.
How to fix in WordPress:
- Install or confirm an SEO plugin is active — Yoast SEO, Rank Math, or All in One SEO are the standard three. Each adds a "Meta Description" field beneath the post editor.
- For each post / page, write the 120–160 character description in that field. The plugin shows a live SERP preview as you type so you can see exactly how it'll look in Google.
- For 871 pages, doing this manually is brutal. Most SEO plugins now ship an AI-write button that generates a description from the post body in one click — review and tweak rather than write from scratch. Yoast's "AI title & description" feature and Rank Math's "Content AI" both do this.
-
As a fallback, set a default template in the SEO plugin (e.g.,
%%excerpt%%for posts) so any future page without a hand-written description at least gets the post excerpt instead of a random page snippet.
Ultra-Long URL Slugs 36 pages over 60 chars
A "slug" is the last part of a URL — the human-readable bit after the last /.
Best practice: 3 to 5 words, under 60 characters. Short slugs are easier to share,
remember, fit in social-media cards, and don't get truncated to nonsense in search results
(Google shows about 75 visible characters of a URL — anything past that gets …'d out).
On this site, the worst offender is 181 characters in a single slug, basically the entire title of the post crammed into the URL. That's WordPress's default behavior when an editor publishes a long-titled post and never trims the auto-generated slug. The fix is to manually edit the slug field in the WP post editor before publishing — or after, with a redirect added so old links still work.
Worst Offenders
| URL | Slug Length |
|---|---|
| /student-scholarship-program-for-airline-pilot-credentials-initiated-by-palm-springs-air-museum-and-the-air-space-forces-association-ps-chapter-in-partnership-with-socal-pilot-center/ | 181 |
| /programs/from-the-front-lines-to-the-c-47-skytrains-an-eyewitness-account-of-caring-for-the-wounded-by-the-111th-evacuation-hospital-in-wwii/ | 131 |
| /opening-of-archival-displays-to-accompany-walt-disneys-grumman-gulfstream-i-airplane-at-the-palm-springs-air-museum/ | 115 |
| /tag/skip-navigation-palm-springs-air-museum-create-avatar-image-blackburn-b-24-skua-warbird-wednesday-episode-256/ | 109 |
| /programs/special-under-the-cowling-presentation-featuring-two-world-war-ii-distinguished-flying-cross-dfc-pilots/ | 103 |
| /programs/misconceptions-about-the-tuskegee-airmen-refuting-myths-about-americas-first-black-military-pilots/ | 98 |
| /programs/japan-strikes-at-dawn-defeat-at-pearl-harbor-the-philippines-and-singapore-conspiracy-or-foul-up/ | 96 |
| /walt-disneys-grumman-gulfstream-i-airplane-returns-to-palm-springs-straight-from-d23-expo-2022/ | 94 |
| /the-quest-for-excellence-isntps-rotary-wing-aviation-fleet-pt-5-warbird-wednesday-episode-143/ | 93 |
| /the-quest-for-excellence-u-s-naval-test-pilot-school-part-3-warbird-wednesday-episode-141/ | 89 |
| /the-quest-for-excellence-usntps-glider-beaver-otter-t6-pt-4-warbird-wednesday-episode-142/ | 89 |
| /tag/skip-navigation-search-create-avatar-image-curtiss-sb2c-warbird-wednesday-episode-257/ | 85 |
Fix: in WP Admin → Posts/Pages, open each offender, click the URL slug field in the right sidebar, shorten to 3–5 keywords, and save. WordPress will offer to add a redirect from the old slug — accept it so existing inbound links keep working.
WP Taxonomy Pages 36 pages (7 categories + 29 tags)
What "taxonomy" means in WordPress: when you publish a post, WordPress
auto-generates a separate URL for every category and every tag assigned to
that post. So if a Warbird Wednesday episode about a P-51 is tagged p-51,
WordPress quietly creates the URL /tag/p-51/ as its own indexable page. That
page contains just the one post that uses the tag, plus the same site header, navigation,
and footer as every other page.
What's happening on this site: the museum has accumulated
36 taxonomy pages —
7 category pages
(/category/warbird-wednesday/, /category/news/, etc.) and
29 tag pages, almost all of which are
per-aircraft or per-episode tags from Warbird Wednesday posts
(/tag/heinkel/, /tag/p-51/, /tag/petlyakov-pe-2/, …).
Why this is a problem:
- Thin content. Most tag pages list a single post — Google's quality guidelines specifically flag "thin content with no added value" and may suppress these pages from search results.
- Near-duplicates of each other. A page at
/tag/p-51/showing one Warbird Wednesday episode looks 95% identical to a page at/tag/heinkel/showing one different Warbird Wednesday episode — same template, same sidebar, just a different middle item. Search engines see this as duplicate content. - Internal-link spam. Each post body shows a "Tags:" row that links to its own tag pages, creating an explosion of low-value internal links that dilute the authority of the museum's real content pages.
- Crawl-budget waste. Google has to crawl and re-crawl all 36 of these pages even though they're nearly empty, leaving less budget for the pages that actually matter.
How to fix in WordPress (pick one):
- Set tag and tag-archive pages to "noindex" in your SEO plugin (Yoast SEO → Search Appearance → Taxonomies → Tags → "Show tags in search results: No"; Rank Math → Titles & Meta → Tags → "Index: noindex"). The pages still exist for internal navigation, but Google ignores them. This is the recommended fix — minimum effort, eliminates the SEO drag immediately.
- Stop using tags entirely. Remove the tag widget from post templates,
delete the existing tags, and rely only on categories. The 7 category pages
(
/category/warbird-wednesday/etc.) are legitimate topical hubs and worth keeping. - Make every tag page unique. Write a 100–200 word intro paragraph for each of the 29 tag pages so each has its own distinct content. This gives them real value but requires a lot of editorial work for marginal SEO benefit. Not recommended at this scale.
Category Pages (7)
These are legitimate topical hubs — keep them, but consider writing a short intro paragraph on each one explaining the series.
/category/expedition-amelia-2025//category/news//category/top-secret-heroes-of-modern-tech//category/tuskegee-tuesday//category/voices-of-valor//category/warbird-wednesday//category/women-in-aviation/
Tag Pages (29)
These are the auto-generated thin-content pages. Set them to noindex via your
SEO plugin.
/tag/ar-2-warbird-wednesday-episode-262//tag/bartini-beriev-vva-14-warbird-wednesday-episode-270//tag/beechcraft-t-6-texan-ii//tag/emb-312//tag/f2y-sea-dart-warbird-wednesday-episode-263//tag/fiat-g-80//tag/heinkel//tag/heinkelhe219//tag/henschel-hs-132//tag/l-29-delfin//tag/loire-nieuport-ln-401//tag/me-p-1109-warbird-wednesday-episode-268//tag/north-american-a-36-warbird-wednesday-episode-261//tag/p-51//tag/petlyakov-pe-2//tag/pilots//tag/red-tails//tag/skip-navigation-palm-springs-air-museum-create-avatar-image-blackburn-b-24-skua-warbird-wednesday-episode-256//tag/skip-navigation-search-create-avatar-image-curtiss-sb2c-warbird-wednesday-episode-257//tag/skip-navigation-search-create-avatar-image-goodyear-inflatoplane//tag/t-38-talon//tag/t-38-talon-warbird-wednesday-episode-251//tag/t-7-red-hawk//tag/tuskegee//tag/warbird-wednesday//tag/warbirdwednesday//tag/warbirdwednesday-vulteea31//tag/world-war-ii//tag/wwii/
Title & Meta Recommendations
- Add meta descriptions to all 871 missing pages. This is the highest-priority SEO fix. Use distinct 120-160 character descriptions per page. Batch-generate using post content where available.
- Shorten 535 titles to under 60 characters. Long titles are truncated in search results. WordPress theme title template likely appending " – Palm Springs Air Museum" to every title (adding ~30 chars).
- Deduplicate Open Cockpit event titles. Add the date or sequence number to each event title. 19 pages share the same F-104 Starfighter title.
- Fix the XML sitemap.
A sitemap is the single file that tells Google, "here is the full list of every page on my website." Without one, Google has to discover pages by clicking links from the homepage outward — that's slow, it's unreliable, and pages buried more than a few clicks deep often go un-indexed for months. For a site with 956 live pages (event listings, Warbird Wednesday profiles, gala honoree stories, blog posts going back years) that means a large share of the museum's content is invisible in search results. Restoring the sitemap is the highest-leverage SEO fix on this list because every page below the homepage benefits from it — not just one or two.
What's actually wrong:
https://palmspringsairmuseum.org/wp-sitemap.xmlcurrently returns HTTP 200 OK, but withContent-Type: text/html— the server is sending the site's homepage HTML instead of an XML document. Google treats that as a "soft 404" and refuses to recognize it as a sitemap. Either re-enable WordPress's built-in sitemap (something on the site is intercepting that URL with the page template) or install an SEO plugin (Yoast, Rank Math) that emits properapplication/xml, then submit the working URL in Google Search Console.