Best Practices

These are the setups we recommend for running Wash: Blog Manager day to day, keeping your SEO intact, and avoiding surprises between WordPress and Shopify.

WordPress configuration

Hide your WordPress blog from the public

When using WordPress solely for content creation (not as your public blog), hide it from the internet:

Option 1: Password protection

Put the whole site behind HTTP Basic Authentication, for example in .htaccess:

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /path/to/.htpasswd
Require valid-user

Then give Wash the same username and password, under Basic Auth on the connection card in Apps > Wash > Connections. Wash sends them with every callback, so syncing keeps working. See Connection Settings.

Option 2: IP restriction

You can limit the WordPress admin to your own IP addresses, but Wash must still reach /wp-json/wash/v1/callback. Wash doesn't publish a fixed IP range, so leave that path open or use Option 1 instead.

Option 3: Subdomain setup

Use a hidden subdomain:

Public store:  www.yourstore.com (Shopify)
Hidden blog:   cms.yourstore.com (WordPress)

Block search engine indexing

Wash can do this for you: tick Block Search Engines on the Advanced tab under Settings > Wash Connector. It makes WordPress's robots.txt say Disallow: /. Wash itself doesn't crawl your site, so this never affects syncing.

For full protection, also tick Discourage search engines from indexing this site under Settings > Reading, and password-protect the site.

PurposeRecommended Plugin
SEOYoast SEO or RankMath
Image optimizationShortPixel or Imagify
Revision controlWP Revisions Control
PerformanceWP Super Cache
SecurityWordfence

Content organization

Plan your blog structure

Before syncing, plan how WordPress categories map to Shopify blogs:

Strategy A: Mirror Structure
WordPress Categories    →    Shopify Blogs
├── News               →    News
├── Tutorials          →    Tutorials
└── Reviews            →    Reviews

Strategy B: Consolidation
WordPress Categories    →    Shopify Blogs
├── Company News       ─┐
├── Press Releases      ├─→  News
└── Events             ─┘
├── Beginner Guides    ─┐
└── Advanced Guides     ├─→  Guides
                       ─┘

Consistent formatting

Establish content standards:

  • Use H2 for main sections and H3 for subsections.
  • Give every image alt text and keep sizes consistent.
  • Write link text that says where the link goes.
  • Keep featured images at one aspect ratio; 16:9 works well.

SEO optimization in WordPress

Optimize before syncing:

  1. Write a meta description for each post in your SEO plugin.
  2. Put the post's main keywords in its title.
  3. Add alt text to every image.
  4. Link to related posts.
  5. Run your SEO plugin's readability check.

Sync best practices

Start with test content

  1. Create 2-3 test posts in WordPress
  2. Configure mappings
  3. Sync test posts
  4. Verify on Shopify
  5. Check formatting, images, metadata
  6. Adjust settings if needed
  7. Proceed with full sync

Schedule syncs wisely

For bulk operations:

  • Run large syncs when traffic is low.
  • Weekday mornings avoid the weekend traffic peak.
  • Keep the sync log open while a large batch runs.

Review before publishing

Workflow recommendation:

1. Draft in WordPress
2. Internal review (draft status)
3. Publish in WordPress
4. Automatic sync to Shopify
5. Verify on Shopify storefront
6. Share/promote

What needs manual attention

While Wash: Blog Manager automates most of the sync process, some items require manual attention after migration.

Links to other posts and pages that are synced to Shopify are rewritten to their Shopify URLs during sync, as long as Rewrite Internal URLs is ticked on the Sync Settings tab (it is by default). Links to posts that aren't synced yet stay pointing at WordPress.

What to do:

  1. Sync everything, then sync the posts with links once more so their links resolve
  2. Fix any remaining links with Search & Replace URL rules
<!-- Before (points to WordPress) -->
<a href="https://yourblog.com/how-to-guide/">How to Guide</a>

<!-- After sync -->
<a href="/blogs/news/how-to-guide">How to Guide</a>

Shopify navigation menus are separate from WordPress menus. WordPress menus are not synced.

What to do:

  1. Go to Shopify Admin → Online Store → Navigation
  2. Manually create menu items pointing to your synced articles
  3. Consider organizing by blog or category

Canonical URLs

If keeping WordPress active alongside Shopify:

Risk: Search engines may see duplicate content.

Solution:

  1. Set canonical URLs in WordPress to point to Shopify versions
  2. Or block WordPress from search engines entirely (recommended)
  3. Use redirects to ensure only one URL is accessible

Links to external sites remain unchanged. However, verify:

  • Links still work after migration
  • No broken external links exist
  • Social sharing URLs are updated

Smart Redirections setup

Enable before migration

Set up redirections BEFORE you start syncing:

  1. Enable Smart Redirections
  2. Point a test domain or your old domain at Shopify
  3. Test with one post
  4. Verify redirect works
  5. Proceed with migration

Maintain redirects long-term

Keep redirects active for at least 1-2 years:

  • Search engines need time to update
  • Backlinks from other sites
  • Bookmarks from users
  • Printed materials with old URLs

Monitor for 404s

Regularly check for broken URLs:

  1. The Pages report in Google Search Console
  2. Visits to your 404 page in analytics
  3. Load from Shopify on the Redirections tab, to check the redirect list

Author management

Standardize author names

Shopify articles carry only an author name. Before syncing, check each author's Display name in WordPress, or set the name to show on Shopify with Author Mapping.

Author display

Most themes show article.author. Show it where your design needs it:

<div class="article-author">{{ article.author }}</div>

Image optimization

Before upload to WordPress

  1. Resize to at most 2048px wide; Wash doesn't resize images.
  2. Compress with a tool such as TinyPNG.
  3. Use JPEG for photos and PNG for graphics.
  4. Give files descriptive names.

During sync

On the Files & Media tab, turn on Convert to WebP for smaller files. Wash converts at quality 85.

On Shopify

Use responsive images:

<img
  src="{{ image | image_url: width: 800 }}"
  srcset="
    {{ image | image_url: width: 400 }} 400w,
    {{ image | image_url: width: 800 }} 800w,
    {{ image | image_url: width: 1200 }} 1200w
  "
  sizes="(max-width: 600px) 400px, (max-width: 1200px) 800px, 1200px"
  loading="lazy"
/>

Shopify theme customization

Create article template sections

Build flexible article templates:

{% comment %} sections/article-template.liquid {% endcomment %}

<article class="article">
  {% section 'article-hero' %}
  {% section 'article-meta' %}
  {% section 'article-content' %}
  {% section 'article-author' %}
  {% section 'article-related' %}
  {% section 'article-comments' %}
</article>

Display custom fields

Show synced metadata (see Custom Fields for the namespaces):

{% comment %} Reading time {% endcomment %}
{% if article.metafields.wash_custom.reading_time %}
  <span class="reading-time">
    {{ article.metafields.wash_custom.reading_time }} min read
  </span>
{% endif %}

Style for consistency

Match WordPress block styles in Shopify CSS:

/* Match WordPress block styles */
.article-content figure {
  margin: 2rem 0;
}

.article-content figcaption {
  font-size: 0.875rem;
  color: #666;
  text-align: center;
  margin-top: 0.5rem;
}

.article-content blockquote {
  border-left: 4px solid #0066cc;
  padding-left: 1rem;
  margin: 1.5rem 0;
  font-style: italic;
}

Security recommendations

WordPress security

  1. Use strong passwords from a password manager.
  2. Turn on two-factor authentication for every user.
  3. Limit login attempts with a plugin.
  4. Keep WordPress, plugins and themes updated.
  5. Serve everything over HTTPS.

API security

  1. Regenerate the API key if you think it leaked, then reconnect with a new connect code.
  2. Review Apps > Wash > Logs now and then.
  3. Use Permissions to lock settings other WordPress admins shouldn't change.
  4. Enable only the features you use.

Shopify security

  1. Give each person their own staff account.
  2. Review which apps have access, regularly.
  3. Turn on two-factor authentication for all staff.
  4. Watch the activity log for admin actions.

Monitoring and maintenance

Regular checks

TaskFrequency
Review sync logsDaily
Check for 404sWeekly
Verify redirect functionWeekly
Update WordPressMonthly
Full sync auditQuarterly

Sync logs

Apps > Wash > Logs in Shopify lists every sync with its result and error message. In WordPress, the Shopify column in the Posts list shows each post's status, and a red icon marks a failed sync.

Error handling

When syncs fail:

  1. Check Apps > Wash > Logs
  2. Identify the pattern (specific posts? images?)
  3. Fix the cause
  4. Retry with Sync to Shopify on the post, or Re-publish to Shopify from Bulk actions

Backup strategy

WordPress backups

Daily: Database backup
Weekly: Full site backup
Monthly: Off-site backup verification

Shopify data

While Shopify handles hosting:

  • Export articles periodically
  • Keep WordPress as source of truth
  • Document custom theme changes

Migration checklist

Pre-migration

  • [ ] Audit existing WordPress content
  • [ ] Clean up unused posts/images
  • [ ] Export list of all WordPress URLs (for redirect mapping)
  • [ ] Verify all images have alt text
  • [ ] Check author display names
  • [ ] Plan category-to-blog mapping
  • [ ] Test with sample content

During migration

  • [ ] Enable Smart Redirections
  • [ ] Sync in batches
  • [ ] Verify each batch
  • [ ] Monitor for errors
  • [ ] Check image uploads
  • [ ] Test redirects
  • [ ] Create 301 redirects for old URLs

Post-migration (SEO checklist)

  • [ ] Submit new sitemap to Google Search Console
  • [ ] Use URL Inspection tool to verify pages
  • [ ] Monitor the Pages report for crawl errors
  • [ ] Check meta titles and descriptions synced correctly
  • [ ] Verify images load from Shopify CDN (not WordPress)
  • [ ] Test internal links and update broken ones
  • [ ] Monitor 404 errors in analytics
  • [ ] Tick Block Search Engines in WordPress (if keeping it)
  • [ ] Keep WordPress secure/hidden