Loading…

Case study · E-commerce

The Porch Swing Store: a headless Shopify rebuild

The Porch Swing Store sells porch swings, gliders, Adirondack chairs and other outdoor furniture online. We rebuilt its storefront as a prerendered Astro site that sits in front of Shopify, kept the same web addresses, and moved the store over with a written cutover plan and a way back.

Live at www.theporchswingstore.com Checked again on 22 October 2026 Shopify still runs checkout

Consultants In A Box is an independent consultancy. We are not affiliated with, endorsed by or sponsored by Shopify or Google. Product names belong to their owners.

The Porch Swing Store home page on a desktop screen, with a porch hero photo, a search bar and a menu of product types
The Porch Swing Store home page on a phone screen
Live, screenshot 22 October 2026
At a glance

What we could check on the live store

Every number here was measured by us on 22 October 2026. The source is under each one, and the full method is in How we measured this.

3,724product pages in the live sitemapLive sitemap.xml, 22 October 2026
404collection pages in the live sitemapLive sitemap.xml, 22 October 2026
30 of 30sampled product pages answered normallyRandom sample from the sitemap, 22 October 2026
30 of 30old-style product addresses redirected to the clean addressRandom sample, 22 October 2026
99mobile Lighthouse score for the home page (median of 3 runs)Lighthouse 12.8.2, 22 October 2026
19requests to load the home page in the phone testLighthouse 12.8.2, 22 October 2026
The starting point

What the store had

The Porch Swing Store is an online retailer with a large catalog across many brands. Its storefront ran on a standard Shopify theme, which is how most Shopify stores start. The Internet Archive captured the old home page on 17 January 2024, and the capture is shown here as the starting point.

  • A theme storefront with a welcome paragraph, a search box and a menu.
  • A catalog the old home page described as over 3,000 products.
  • Web addresses for products, collections, pages and articles that search engines and other sites already knew.
  • Shopify as the system for the catalog, inventory, checkout and customer accounts.

What we set out to do

  • Keep every address and keep Shopify as the back office.
  • Make the store faster to open and easier to search and browse on a phone.
  • Add markup that search engines and AI assistants can read.
  • Move the live domain with a plan that could be reversed.
The old Porch Swing Store home page on a desktop screen, with a welcome paragraph, a search box and a menu
The old Porch Swing Store home page on a phone screen, with a welcome paragraph and a search box

Archived capture of the old storefront, 17 January 2024. Some images were not archived. Open the capture

What we built

A fast storefront in front of Shopify

Each piece carries a status label, so you can tell what is running, what we offer and what is still being built.

Live

Prerendered headless storefront

Every product, collection, page and article is built ahead of time as a fast page in Astro, instead of being assembled by a theme on each visit. Shopify stays behind it.

Live site, 22 October 2026
Live

Shopify as the back office

Catalog, inventory, checkout and customer accounts stay in Shopify. The cart drawer hands shoppers to a Shopify checkout link on the store's own subdomain.

Cart tested in a browser, 22 October 2026
Live

Same addresses plus redirects

Product, collection, page and blog addresses are kept. Old collection-path product addresses and the old product sitemap redirect permanently, and Shopify-only paths go to Shopify.

Live requests, 22 October 2026
Live

Search, filters and menus

Site search, a mega menu by product type, brand and color, filters, quick view and a cart drawer, designed around how outdoor furniture is shopped.

Menu and cart seen live; search and filters per the project README
Live

Structured data and llms.txt

Product, Offer, Brand, FAQ and breadcrumb data on product pages, collection and item-list data on collections, a sitemap, and an llms.txt summary for AI assistants.

Live page source, 22 October 2026
Live

A rebuild routine

The site is rebuilt from Shopify's public catalog data, and prices and stock refresh in the shopper's browser so a page built earlier does not sell at an old price. The notes recommend a nightly rebuild.

Project README and migration notes
Available, results not published

Feeds, ads, email and reviews

Product feeds, Google Ads, abandoned-cart email and product reviews are setups we offer to online stores. We do not publish results for this store.

Not claimed on this page
In development

AI catalog operations

AI-drafted catalog and content work with a person approving every change. This is being built and is not offered as a finished service yet.

In development
See it

The live storefront on a desktop and a phone

Screenshots of the public site taken on 22 October 2026. Prices and stock change, so what you see live may differ.

On a desktop

A Porch Swings and Gliders collection page on a desktop screen, showing product cards in a grid
A collection page
A product page for a recycled plastic Adirondack chair on a desktop screen, with a photo gallery and the product title
A product page
The cart drawer open on the product page on a desktop screen, listing one chair with a Check out securely button
The cart drawer

On a phone

The Porch Swing Store home page on a phone screen
Home page
A porch swings collection page on a phone screen
A collection page
A product page for an Adirondack chair on a phone screen, with the photo and an In stock label
A product page
The cart drawer open on a phone screen with one item and a checkout button
The cart drawer

The cart drawer opened on a real product and we did not complete a purchase. Its checkout button points at a Shopify cart link on the store's shop subdomain.

Before and after

Drag to compare the old and new home page

The old page is the Internet Archive capture from 17 January 2024. The new page is our screenshot from 22 October 2026. Some images on the old capture were not archived.

The old Porch Swing Store home page on a desktop screen, with a welcome paragraph, a search box and a menuThe Porch Swing Store home page on a desktop screen, with a porch hero photo, a search bar and a menu of product typesBefore, 17 January 2024After, 22 October 2026

Side by side

WhatBeforeAfter
How the storefront is built
Before

A Shopify theme storefront. Page assets load from the store's Shopify CDN path.

Page metadata in the archived capture, 2024-01-17
After

Prerendered Astro pages served as static files. Shopify serves checkout and accounts.

Live site and project README, 2026-10-22
Home page
Before

A welcome paragraph and two icon blurbs under the menu, with category tiles further down.

Archived capture, desktop and phone, 2024-01-17
After

A full-width photo hero with a headline, a product count and two buttons, under a search bar and menu.

Playwright screenshots of the live site, 2026-10-22
Menu
Before

Ten top-level links: Home, Porch Swings, Chairs, Patio Sets, Gliders, Home Decor, Indoor Furniture, Brands, The Blog and About Us.

Archived capture, desktop, 2024-01-17
After

Eleven top-level links with drop-down menus, including Deep Seating, Adirondack and Shop by Color.

Playwright screenshot of the live site, 2026-10-22
Search box
Before

A plain search box.

Archived capture, desktop and phone, 2024-01-17
After

A search bar that suggests what to search for and answers to a keyboard shortcut. The README describes instant, typo-tolerant search.

Live screenshot; README for the search behavior, 2026-10-22
Cart
Before

A cart icon in the header.

Archived capture, header, 2024-01-17
After

Add to cart opens a drawer with the item, a subtotal, Check out securely and View cart. Check out securely points to a Shopify checkout link on the shop subdomain.

Tested in a browser; checkout not completed, 2026-10-22
Catalog size
Before

The old home page text says the store has over 3,000 products.

Text on the archived home page, 2024-01-17
After

The live sitemap lists 3,724 product pages. These come from different kinds of source, so they are not a growth figure.

Live sitemap.xml, 2026-10-22
Web addresses
Before

The live Shopify addresses, recorded as 4,491 in the migration notes.

Project MIGRATION notes (not dated), Undated notes
After

The notes record all 4,491 resolving on the new site. A live sample of 30 product pages all answered normally, and 30 old-style product addresses all redirected.

MIGRATION notes; live sample by us, 2026-10-22
Speed today

How the live pages test now

Google Lighthouse lab tests we ran on 22 October 2026. Higher scores are better, and the range shows how much three runs moved.

99

Home page

Phone, runs scored 97 to 100

Largest content
2.0 s
Blocking time
42 ms
Layout shift
0
Page weight
672 KB
Requests
19
99

Home page

Desktop, runs scored 97 to 100

Largest content
0.9 s
Blocking time
0 ms
Layout shift
0
Page weight
829 KB
Requests
31
96

A product page

Phone, runs scored 96 to 98

Largest content
2.6 s
Blocking time
0 ms
Layout shift
0
Page weight
212 KB
Requests
14

Method. Google Lighthouse 12.8.2 run by us from a server on 22 October 2026, three runs per row, default phone settings (simulated slow 4G and a slowed processor) and the desktop preset. We show the median score and the range. The PageSpeed Insights service was over its free daily limit that day, so we used the same engine locally. These are lab tests, not data from real shoppers, and scores move a little from run to run.

No before score. We have no measurement of the old storefront that we can repeat today, so we do not show a before score. Earlier figures that appear elsewhere on this site were not re-measured for this page and are not repeated here.

Migration

Moving the live domain without a loop, with a way back

Checkout links point at Shopify, so the order of the cutover matters. If www had moved first, every checkout link would have come straight back to the new site. The runbook puts Shopify on its own subdomain first.

  1. 1

    Give Shopify its own subdomain

    A shop subdomain is pointed at Shopify first, set as Shopify's primary domain, and given its SSL certificate. This comes before anything else so checkout links cannot loop back to the new site.

    Who: Us and the store ownerReversible: Yes

  2. 2

    Build for production

    The site is built with Shopify's origin set to the shop subdomain and with indexing switched on, then deployed. A link check runs against Shopify's own sitemaps.

    Who: UsReversible: Yes, by redeploying

  3. 3

    Attach www to the new site

    The www hostname is attached to the new site and its exact DNS records are read back. The runbook lowers the TTL to 300 seconds a day before the switch so a rollback is fast.

    Who: UsReversible: Yes

  4. 4

    Switch DNS

    www is pointed at the new site, and the bare domain gets a permanent redirect to www.

    Who: UsReversible: Rollback: point www back at Shopify and set Shopify's primary domain back to www

  5. 5

    Verify on the real domain

    Home, a product, a collection, the cart and its checkout link, redirects, the sitemap and robots.txt are checked on the live domain.

    Who: UsReversible: Not applicable

  6. 6

    Tell search engines

    The new sitemap is resubmitted in Google Search Console for the same property and the same addresses, and the runbook expects the product feed to keep working because product addresses did not change.

    Who: The store owner and usReversible: Not applicable

From the project's migration runbook. The runbook does not date each step, so they are shown in order rather than on a calendar. The live domain checks on 22 October 2026 confirm the end state.

The rollbackPoint www back at Shopify and set Shopify's primary domain back to www. Everything on the new site is a build, so a redeploy is the undo for the other steps.

Redirect behavior we checked live

theporchswingstore.comwww.theporchswingstore.com301, bare domain to www
/collections/outdoor/products/<slug>/products/<slug>301, old collection-path product address to the clean address
/accountshop.theporchswingstore.com/account302, accounts stay on Shopify
/sitemap_products_1.xml/sitemap.xml301, the old Shopify product sitemap
4,491 of 4,491live Shopify addresses resolve on the new site (4,486 built pages and 5 redirects)Recorded in the migration notes. Not re-run for this page.
555Shopify URL redirects in the redirect mapRecorded in the migration notes. The map file in the project holds 536 entries today, so treat 555 as the figure the notes record.
20 of 20sampled redirect-map addresses answered with a permanent redirectLive sample by us, 22 October 2026. 17 ended on a live page; 3 ended on removed products and show the not-found page.
30 of 30sampled old-style product addresses redirected to the clean addressLive sample by us, 22 October 2026
Search and AI readiness

What the pages tell search engines and AI assistants

Read from the live pages on 22 October 2026. We describe what is present, not what it will earn.

Structured data types found

  • Home pageWebSite, OnlineStore, SearchAction, ContactPoint
  • Product pageProduct, Offer, Brand, Organization, BreadcrumbList, FAQPage, HowTo
  • Collection pageCollectionPage, ItemList, BreadcrumbList, WebSite

Indexing and discovery checks

  • IndexableThe home, collection and product pages sent robots index, follow with max-image-preview large.
  • CanonicalEach page's canonical points at its own www address.
  • Sitemapsitemap.xml lists 4,489 addresses: 3,724 products, 404 collections and 304 articles, plus brand, industry, affiliate and information pages.
  • robots.txtAllows crawling, blocks only the cart, search and data paths, and names the sitemap.
  • llms.txtA plain summary of the store, its key policies and its main collections for AI assistants.
  • Bare domaintheporchswingstore.com redirects permanently to www.theporchswingstore.com.
  • Account paths/account on www redirects to the Shopify store subdomain.
Everything we manage

One storefront, with Shopify behind it

Shopify stays the back office. The diagram shows where our work sits and which parts are live, offered or still being built.

The Porch Swing Storewww.theporchswingstore.com
Live

The storefront

  • Prerendered product, collection, page and article pages
  • Search, filters, mega menu, quick view, cart drawer
  • Rebuild from Shopify's catalog data
Built and running
Live

Search and AI readiness

  • Structured data on products and collections
  • sitemap.xml and robots.txt
  • llms.txt summary
Built and running
Live

Addresses and redirects

  • Same product, collection, page and blog addresses
  • Redirect map and Shopify-only path handling
  • Bare domain to www
Built and running
Stays in Shopify

Kept in Shopify

  • Catalog and inventory
  • Checkout and payments
  • Customer accounts, orders and policies
Shopify is the back office
Available, results not published

Feeds, ads, email, reviews

  • Merchant Center product feed
  • Google Ads tied to purchases
  • Abandoned-cart email, product reviews
Offered, results not published
In development

AI catalog operations

  • Drafted titles and descriptions, approved by a person
  • Safer site editing
In development
Timeline

How it came together

The project's code history is a single bulk upload on 21 October 2026, so it cannot date the build stages. We show the dates we can verify and put the rest in order without inventing dates.

  1. The old storefront is archived

    The Internet Archive captures the old home page. It is the Before in this case study.

    Source: Wayback Machine capture
  2. Build

    Catalog read from Shopify and prerendered

    Products, collections, pages and articles are read from Shopify's public catalog data and built at the same addresses.

    Source: Project README
  3. Check

    Address parity and redirects

    Every live Shopify address is checked against the build, and the redirect map is generated.

    Source: Project MIGRATION notes
  4. Cutover

    Shopify moves to its own subdomain, then www moves

    The order matters so checkout never loops, and the plan names its rollback.

    Source: Project MIGRATION notes
  5. After the switch

    Verify and resubmit the sitemap

    Checks on the real domain, then the sitemap goes to Search Console.

    Source: Project MIGRATION notes
  6. Checked again for this page

    Status, indexing, canonical tags, sitemap counts, structured data, redirects and Lighthouse runs repeated on the live site.

    Source: Checks by us
Honest status

What is live, what is offered and what is not yet

Live

On The Porch Swing Store

The prerendered storefront, the address parity and redirects, the structured data, sitemap and llms.txt, and the cart drawer with Shopify checkout.

Available, results not published

Setups we offer

Merchant Center feeds, Google Ads tied to purchases, abandoned-cart email and product reviews. Read the feed playbook.

In development

Still being built

AI catalog operations, with a person approving drafted titles, descriptions and site edits.

Evidence

How we measured this

Open each list to see the item, the value, where it came from and when.

Evidence table
Home page status and indexability

200, robots index follow, canonical is the www home page

Live request and page source: https://www.theporchswingstore.com/. 2026-10-22
Bare domain

301 to https://www.theporchswingstore.com/

Live request: https://theporchswingstore.com/. 2026-10-22
Sitemap size

4,489 addresses: 3,724 products, 404 collections, 304 articles, 20 brand, 14 industry, 12 page and 10 affiliate addresses, plus the home page

Live https://www.theporchswingstore.com/sitemap.xml. 2026-10-22
Product count on llms.txt

3,724 products, the same as the sitemap

Live https://www.theporchswingstore.com/llms.txt. 2026-10-22
Structured data types

Home, product and collection types as listed in the SEO section

JSON-LD parsed from the live pages (a product page and the Porch Swings and Gliders collection). 2026-10-22
Sampled product pages

30 of 30 answered 200

Random 30 of the sitemap's product addresses (random seed 5). 2026-10-22
Sampled collection pages

20 of 20 answered 200

Random 20 of the sitemap's collection addresses. 2026-10-22
Old-style product addresses

30 of 30 answered 301 to /products/<slug>

The same 30 slugs requested under /collections/outdoor/products/. 2026-10-22
Redirect-map sample

20 of 20 answered 301; 17 ended on a live page, 3 ended on removed products and show the not-found page

Random 20 of src/data/redirect-map.json in the project, requested live. 2026-10-22
Account path

302 to https://shop.theporchswingstore.com/account

Live request: /account on www. 2026-10-22
Cart drawer and checkout link

Add to cart opened the drawer; Check out securely links to a cart link on shop.theporchswingstore.com; checkout was not completed

Playwright with Chromium, a product page, desktop and phone widths. 2026-10-22
Lighthouse

Home phone 99 (97 to 100), home desktop 99 (97 to 100), product phone 96 (96 to 98); medians of 3 runs

Lighthouse 12.8.2 in headless Chromium, details in the speed section. 2026-10-22
Old storefront capture

Shopify theme storefront with a menu, text saying over 3,000 products

https://web.archive.org/web/20240117050516/https://theporchswingstore.com/. 2024-01-17
Address parity and redirect count

4,491 of 4,491 live Shopify addresses resolve; 555 redirects

Project MIGRATION.md, recorded in the migration notes. Not re-run for this page.. Undated notes
Cutover order and rollback

Shopify moves to a shop subdomain first; rollback points www back at Shopify

Project MIGRATION.md. Undated notes
What we could not verify, so left out
  • Speed scores for the old storefront. We could not repeat a measurement of it, so there is no before score.
  • Revenue, orders, conversion, search rankings, traffic and customer counts. We do not publish them for this store.
  • Results of Merchant Center feeds, Google Ads, email or reviews. We do not claim them.
  • The full link check and the 555 redirect count were recorded in the project notes and were not fully re-run. We re-ran samples.
  • Whether the shop subdomain is hidden from search engines. The notes call for it, and we did not confirm it on the live store.
  • Search and filter behavior in a browser. They are described in the project README and were not tested for this page.
  • A nightly rebuild schedule. The notes recommend one, and we have not confirmed that it is running.
Why other figures for this store are not used

Older pages on this site gave other figures for this store, such as 3,676 products and a mobile score of 79. We do not repeat them because we could not source them to a dated check. Every number on this page was measured on 22 October 2026 or is labelled as recorded in the project notes.

FAQ

Questions about this project

What is a headless storefront?

The pages shoppers see are built separately from the back office. Here the pages are built ahead of time in Astro and served fast, while Shopify keeps running the catalog, inventory, checkout and accounts.

Did the store keep its web addresses?

Yes. The new site uses the same product, collection, page and blog addresses as before, and old redirects were carried over. Shopify-only paths such as accounts go to Shopify.

How does checkout work?

Shoppers fill a cart on the new site and press Check out securely. That hands them to a Shopify checkout link on the store's own shop subdomain, so payments and orders stay in Shopify.

What was the plan if the cutover went wrong?

The runbook names it: point the www hostname back at Shopify and set Shopify's primary domain back to www. The runbook calls for lowering the TTL to 300 seconds a day before the switch so that a rollback is quick.

Did search results improve?

We do not publish ranking, traffic or sales figures for this store, and we do not promise them. We describe what was built and what we could check today: the pages are indexable, canonical, in the sitemap and carry structured data.

Are the speed numbers a guarantee?

No. They are lab tests we ran on 22 October 2026, with the method shown, and they vary from run to run. A different store, catalog or set of apps will give different numbers.

Do you also run feeds, ads, email and reviews for this store?

We offer those as setups for online stores, and they are labeled Available here because we do not publish results for this store. AI catalog operations are in development.

Would a rebuild like this suit my store?

Not always. Headless adds a build to maintain, and for a small catalog speeding up the existing theme is often the better first step. The free business evaluation tells you which fits.

Find out what to fix first in your online store

Tell us about your store and we will look at its speed, search presence, feed, ads and follow-up, then send a short list of what we would change first. No commitment.

Book a free consultation

Tell us about your team and the software you need help with. We'll follow up to schedule a time to talk.

Open the form on its own page