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.
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.


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.
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.


Archived capture of the old storefront, 17 January 2024. Some images were not archived. Open the capture
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.
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 2026Shopify 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 2026Same 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 2026Search, 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 READMEStructured 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 2026A 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 notesFeeds, 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 pageAI 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 developmentThe 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



On a phone




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.
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.

Before, 17 January 2024After, 22 October 2026
BeforeAfterSide by side
A Shopify theme storefront. Page assets load from the store's Shopify CDN path.
Page metadata in the archived capture, 2024-01-17Prerendered Astro pages served as static files. Shopify serves checkout and accounts.
Live site and project README, 2026-10-22A welcome paragraph and two icon blurbs under the menu, with category tiles further down.
Archived capture, desktop and phone, 2024-01-17A 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-22Ten 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-17Eleven top-level links with drop-down menus, including Deep Seating, Adirondack and Shop by Color.
Playwright screenshot of the live site, 2026-10-22A plain search box.
Archived capture, desktop and phone, 2024-01-17A 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-22A cart icon in the header.
Archived capture, header, 2024-01-17Add 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-22The old home page text says the store has over 3,000 products.
Text on the archived home page, 2024-01-17The 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-22The live Shopify addresses, recorded as 4,491 in the migration notes.
Project MIGRATION notes (not dated), Undated notesThe 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-22How 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.
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
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
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.
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
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.
- 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.
- 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.
- 4
Switch DNS
www is pointed at the new site, and the bare domain gets a permanent redirect to www.
- 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.
- 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.
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.
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 sitemapWhat 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.
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 storefront
- Prerendered product, collection, page and article pages
- Search, filters, mega menu, quick view, cart drawer
- Rebuild from Shopify's catalog data
Search and AI readiness
- Structured data on products and collections
- sitemap.xml and robots.txt
- llms.txt summary
Addresses and redirects
- Same product, collection, page and blog addresses
- Redirect map and Shopify-only path handling
- Bare domain to www
Kept in Shopify
- Catalog and inventory
- Checkout and payments
- Customer accounts, orders and policies
Feeds, ads, email, reviews
- Merchant Center product feed
- Google Ads tied to purchases
- Abandoned-cart email, product reviews
AI catalog operations
- Drafted titles and descriptions, approved by a person
- Safer site editing
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.
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- 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 - Check
Address parity and redirects
Every live Shopify address is checked against the build, and the redirect map is generated.
Source: Project MIGRATION notes - 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 - After the switch
Verify and resubmit the sitemap
Checks on the real domain, then the sitemap goes to Search Console.
Source: Project MIGRATION notes 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
What is live, what is offered and what is not yet
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.
Setups we offer
Merchant Center feeds, Google Ads tied to purchases, abandoned-cart email and product reviews. Read the feed playbook.
Still being built
AI catalog operations, with a person approving drafted titles, descriptions and site edits.
How we measured this
Open each list to see the item, the value, where it came from and when.
Evidence table
200, robots index follow, canonical is the www home page
Live request and page source: https://www.theporchswingstore.com/. 2026-10-22301 to https://www.theporchswingstore.com/
Live request: https://theporchswingstore.com/. 2026-10-224,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-223,724 products, the same as the sitemap
Live https://www.theporchswingstore.com/llms.txt. 2026-10-22Home, 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-2230 of 30 answered 200
Random 30 of the sitemap's product addresses (random seed 5). 2026-10-2220 of 20 answered 200
Random 20 of the sitemap's collection addresses. 2026-10-2230 of 30 answered 301 to /products/<slug>
The same 30 slugs requested under /collections/outdoor/products/. 2026-10-2220 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-22302 to https://shop.theporchswingstore.com/account
Live request: /account on www. 2026-10-22Add 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-22Home 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-22Shopify theme storefront with a menu, text saying over 3,000 products
https://web.archive.org/web/20240117050516/https://theporchswingstore.com/. 2024-01-174,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 notesShopify moves to a shop subdomain first; rollback points www back at Shopify
Project MIGRATION.md. Undated notesWhat 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.
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.
