Overview
Wash automatically syncs WordPress pages (About, Contact, FAQ, etc.) to Shopify Pages. This is separate from blog articles and uses a dedicated sync mechanism.
How It Works
WordPress Page (e.g., /about-us/)
↓
Wash Plugin detects post_type = 'page'
↓
API: POST /api/page-sync
↓
Shopify Page created at /pages/about-us
URL Mapping
| WordPress URL | Shopify URL |
|---|---|
/about-us/ | /pages/about-us |
/contact/ | /pages/contact |
/faq/ | /pages/faq |
/pages/ prefix. This cannot be changed.
Enabling Page Sync
Page sync is enabled by default. To verify:
- Go to WordPress Admin → Settings → Wash
- Click the Sync tab
- Check that Post Types includes
page
Default value: post,page
What Gets Synced
| WordPress Field | Shopify Page Field |
|---|---|
| Page Title | Page Title |
| Page Content | Page Body (HTML) |
| Page Slug | Page Handle |
| Featured Image | Prepended to body as <img> |
| Yoast/RankMath SEO | Page SEO (title, description) |
| ACF Fields | Page Metafields |
| Custom Fields | Page Metafields |
Featured Images
Shopify Pages don't have a native featured image field like Blog Articles. Wash handles this by prepending the featured image as an HTML element at the beginning of the page body:
<img src="https://cdn.shopify.com/.../image.jpg"
alt="Page Title"
style="width:100%;max-width:800px;margin-bottom:20px;" />
<!-- Rest of page content -->
Multilingual Pages
For multilingual sites (WPML, Polylang, etc.), use language-prefixed slugs:
| Language | WordPress Slug | Shopify URL |
|---|---|---|
| English | en-about-us | /pages/en-about-us |
| German | de-ueber-uns | /pages/de-ueber-uns |
| French | fr-a-propos | /pages/fr-a-propos |
Redirections
When migrating pages, create redirects from WordPress URLs to Shopify URLs to preserve SEO:
- Go to WordPress Admin → Settings → Wash → Redirections
- Click Generate from Synced Posts
- Review the generated redirects (includes pages)
- Click Sync to Shopify
Example redirect:
/about-us/ -> /pages/about-us
Metafields
Page metafields are synced automatically after page creation:
- ACF fields →
wash_acfnamespace - Yoast/RankMath →
wash_seonamespace - Custom fields →
wash_customnamespace - Hreflangs →
wash_seo.hreflang_*
Hreflangs for Pages
If you have multilingual pages with WPML/Polylang, hreflang tags are synced as metafields:
wash_seo.hreflang_en_us = "/pages/en-about-us"
wash_seo.hreflang_de_de = "/pages/de-ueber-uns"
wash_seo.hreflang_x_default = "/pages/en-about-us"
Add these to your Shopify theme's <head> section. See Shopify Limitations for theme code examples.
Differences from Blog Articles
| Feature | Blog Articles | Pages |
|---|---|---|
| URL Format | /blogs/{handle}/{slug} | /pages/{slug} |
| Blog Mapping | Uses rule-based routing | Not applicable |
| Featured Image | Native article.image | Prepended to body |
| Author | Supported | Not supported natively |
| Tags | Supported | Not supported |
| Categories | Flattened to tags | Not supported |
Troubleshooting
Page not syncing?
- Check that
pageis in the Post Types setting - Verify the page is published (not draft)
- Check the Wash sync status column in Pages list
Page content not updating?
Wash uses fallback logic: if the page was deleted on Shopify, it will create a new one on the next sync. Check the page handle hasn't changed.
Images not showing?
Ensure Files & Media sync is enabled in Wash settings. Images must be uploaded to Shopify CDN before they appear.