<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Webiost]]></title><description><![CDATA[Practical guides from Webiost covering WordPress, web hosting, cloud infrastructure, domains, and AI automation for developers and businesses.]]></description><link>https://webiost.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Fri, 30 Oct 2026 07:17:57 GMT</lastBuildDate><atom:link href="https://webiost.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How to Test a WordPress Backup Without Touching Your Live Site]]></title><description><![CDATA[Learn how to restore a WordPress backup in an isolated test environment, verify data, and check recovery readiness without changing your live site.]]></description><link>https://webiost.hashnode.dev/how-to-test-a-wordpress-backup-without-touching-your-live-site</link><guid isPermaLink="true">https://webiost.hashnode.dev/how-to-test-a-wordpress-backup-without-touching-your-live-site</guid><category><![CDATA[WordPress]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[Devops]]></category><category><![CDATA[Security]]></category><category><![CDATA[Backup]]></category><dc:creator><![CDATA[Webiost]]></dc:creator><pubDate>Wed, 28 Oct 2026 00:00:45 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6adbdeb7ef07ed1d06da9b21/41dc35df-1b54-421a-9b26-05b99ddb6ea0.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>How to Test a WordPress Backup Without Touching Your Live Site</p>
<p>A practical restore checklist for checking your files, database and essential website functions in an isolated environment.</p>
<p>A backup notification tells you that a backup job finished. It does not tell you whether you can recover a working website from that backup.</p>
<p>The missing database table, unreadable archive or unavailable plugin usually becomes obvious during a restore—not while looking at a green status indicator.</p>
<p>A restore test gives you a chance to find those problems while your public website is still running normally.</p>
<p>This guide explains how to test a WordPress backup in a separate environment, check the recovered site and document what would still be needed during a real incident.</p>
<ol>
<li>Identify exactly what your backup contains</li>
</ol>
<p>A typical WordPress recovery needs both website files and a database.</p>
<p>Files include themes, plugins, uploads and configuration. The database contains posts, pages, settings and other application data. Downloading the WordPress folder alone does not normally capture the database.</p>
<p>Check that your backup includes:</p>
<ul>
<li>A database export or recoverable database snapshot.</li>
<li>Themes, plugins and uploaded media.</li>
<li>Configuration files needed for recovery.</li>
<li>A clearly recorded backup date and time.</li>
<li>Instructions for accessing or downloading the backup.</li>
</ul>
<p>Keep the files and database associated with the same recovery point. A recent database combined with much older uploads can leave references to media that was never restored.</p>
<p>The WordPress backup handbook explains why both files and the database are needed:</p>
<p><a href="https://developer.wordpress.org/advanced-administration/security/backup/">https://developer.wordpress.org/advanced-administration/security/backup/</a></p>
<ol start="2">
<li>Prepare an isolated destination before restoring anything</li>
</ol>
<p>Use a separate staging environment or local development environment.</p>
<p>Give it its own document root, database and database user. Confirm that its database credentials cannot write to your production database.</p>
<p>Before importing the backup:</p>
<ul>
<li>Protect the destination with authentication or private network access.</li>
<li>Prevent the restored application from sending real customer emails.</li>
<li>Block or disable production webhooks and external integrations.</li>
<li>Prevent live payment requests and automated subscription activity.</li>
<li>Pause scheduled jobs until you have reviewed what they do.</li>
</ul>
<p>Apply these controls before the copied application starts running. A restored database may contain live API credentials and scheduled tasks.</p>
<p>A search-engine “noindex” setting can help with search visibility, but it does not protect private customer data. Keep the test environment access-controlled.</p>
<p>Your production DNS records and live website should stay unchanged throughout this exercise.</p>
<ol start="3">
<li>Restore into the test environment</li>
</ol>
<p>Follow the restore process documented by your backup tool or hosting provider. Confirm the destination again before approving any import or overwrite.</p>
<p>For a manual recovery, the work generally includes restoring the files, importing the database into a separate database and updating the test copy’s configuration.</p>
<p>Check:</p>
<ul>
<li>The database import completed successfully.</li>
<li>The test installation uses the intended database.</li>
<li>Required files and uploads are present.</li>
<li>The PHP version and required extensions are compatible.</li>
<li>The restored site can connect to its database.</li>
</ul>
<p>If you are importing a database export manually, consult the WordPress database backup and restore instructions. The steps depend on the export format and database tools available:</p>
<p><a href="https://developer.wordpress.org/advanced-administration/security/backup/database/">https://developer.wordpress.org/advanced-administration/security/backup/database/</a></p>
<p>Do not use a production database as the destination for a practice restore.</p>
<ol start="4">
<li>Check whether the restored site points back to production</li>
</ol>
<p>A restored database can still contain the public website’s original URLs.</p>
<p>This may cause the test copy to redirect to production or load images and other assets from the live site. That can make a broken restore appear healthy.</p>
<p>Use your browser’s address bar and network tools to check where pages and assets are actually loading from.</p>
<p>If the test copy uses a different hostname, use your backup tool’s URL-handling process or a WordPress-aware replacement method.</p>
<p>WP-CLI provides a search-and-replace command that handles serialized data and supports a dry run. Preview changes and verify the target installation before making replacements.</p>
<p>Official WP-CLI documentation:</p>
<p><a href="https://developer.wordpress.org/cli/commands/search-replace/">https://developer.wordpress.org/cli/commands/search-replace/</a></p>
<p>Confirm that the test site is displaying its own restored content.</p>
<ol start="5">
<li>Test the functions that matter to your website</li>
</ol>
<p>Choose checks based on what visitors actually do.</p>
<p>For a business website, this might include:</p>
<ul>
<li>Opening important service and contact pages.</li>
<li>Loading older and recently uploaded images.</li>
<li>Signing into the WordPress dashboard.</li>
<li>Searching for a known post.</li>
<li>Submitting a contact form to a controlled test inbox.</li>
<li>Checking a representative custom feature.</li>
</ul>
<p>Compare the recovered content against the backup timestamp. A post created after the snapshot will not normally be present in that snapshot.</p>
<p>For a WooCommerce store, also test product pages, cart behaviour, shipping calculations, taxes and checkout using sandbox payment settings. Route test emails to a controlled destination.</p>
<p>WooCommerce recommends testing important store workflows in staging before affecting customers. Its staging guidance provides a useful workflow checklist:</p>
<p><a href="https://woocommerce.com/document/how-to-update-woocommerce/">https://woocommerce.com/document/how-to-update-woocommerce/</a></p>
<p>Keep staging isolated even if you only intend to browse the restored store.</p>
<ol start="6">
<li>Record recovery time and the potential data gap</li>
</ol>
<p>Write down when you started the restore and when the recovered website passed your essential checks.</p>
<p>Include time spent:</p>
<ul>
<li>Finding the correct backup.</li>
<li>Obtaining access or downloading files.</li>
<li>Restoring the database and files.</li>
<li>Correcting configuration.</li>
<li>Testing important functions.</li>
</ul>
<p>Also record the difference between the backup timestamp and the time of the imagined incident.</p>
<p>For example, a snapshot taken at 02:00 will not automatically contain an order placed at 11:00. This is an illustrative scenario, not a measured Webiost customer result.</p>
<p>For an active store, recovering files is only part of recovery planning. Recent orders, payments and inventory changes may need reconciliation before an older database can safely replace production.</p>
<ol start="7">
<li>Keep a short restore-test record</li>
</ol>
<p>A simple record makes the next test easier:</p>
<p>Website: Test date: Backup timestamp and timezone: Backup location: Restore destination: Restore start time: Essential checks completed at:</p>
<p>Files and media: PASS / FAIL Database connection: PASS / FAIL Administrator login: PASS / FAIL Important pages: PASS / FAIL Forms and controlled email delivery: PASS / FAIL Sandbox checkout, if applicable: PASS / FAIL</p>
<p>Missing data or files: Configuration changes required: Unresolved problems: Person responsible for follow-up:</p>
<p>Record the problems as well as the successful checks. Someone else should be able to understand what happened without repeating the entire investigation.</p>
<ol start="8">
<li>Close the test environment properly</li>
</ol>
<p>When testing is complete, remove the temporary environment if you no longer need it. If you retain it, keep access restrictions, updates and integration controls in place.</p>
<p>Remove temporary database dumps, archives and credentials from publicly accessible locations.</p>
<p>Repeat the exercise after meaningful changes to your hosting, backup process or website functionality, and choose an ongoing schedule that reflects how frequently your data changes.</p>
<p>If you are comparing hosting services, ask about backup retention, restore access, recovery assistance and exclusions. The Webiost shared hosting page describes its backup features alongside plan information:</p>
<p><a href="https://webiost.com/hosting/shared-hosting">https://webiost.com/hosting/shared-hosting</a></p>
<p>A useful restore test ends with a working recovered website, a record of what was checked and a clear list of anything that still needs fixing.</p>
<p>Published by Webiost — Practical WordPress and Hosting Guides.</p>
]]></content:encoded></item><item><title><![CDATA[How to Check DNS, SSL and Redirects After a WordPress Migration]]></title><description><![CDATA[Check DNS, SSL and redirects after migrating WordPress. Follow practical commands to verify URLs, HTTPS and important website settings.]]></description><link>https://webiost.hashnode.dev/how-to-check-dns-ssl-and-redirects-after-a-wordpress-migration</link><guid isPermaLink="true">https://webiost.hashnode.dev/how-to-check-dns-ssl-and-redirects-after-a-wordpress-migration</guid><category><![CDATA[WordPress]]></category><category><![CDATA[webdev]]></category><category><![CDATA[dns]]></category><category><![CDATA[Tutorial]]></category><dc:creator><![CDATA[Webiost]]></dc:creator><pubDate>Sat, 24 Oct 2026 00:07:54 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6adbdeb7ef07ed1d06da9b21/070ccafa-6ddb-4e48-b149-3782366916a8.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Moving a WordPress website to a new server can feel like a job well done, especially when the homepage opens without errors.</p>
<p>But there's a catch.</p>
<p>Your website might load perfectly on your computer while visitors in another location still reach the old server. Your SSL certificate might work on the homepage but fail on the <code>www</code> version. Or an old product URL might suddenly lead to a 404 page.</p>
<p>These problems are easy to miss if you only check whether the homepage loads.</p>
<p>Here is a practical way to verify the three things that often cause trouble after a WordPress migration: <strong>DNS, SSL and redirects</strong>.</p>
<h2>1. Start by Checking Where Your Domain Points</h2>
<p>DNS tells browsers which server should handle requests for your domain.</p>
<p>After a migration, you want to confirm that the domain resolves to the intended destination.</p>
<p>On macOS or Linux, open a terminal and run:</p>
<pre><code class="language-bash">dig +short example.com A
dig +short example.com AAAA
dig +short www.example.com CNAME
</code></pre>
<p>Replace <code>example.com</code> with your own domain.</p>
<p>Check the returned IPv4 and IPv6 records against your hosting provider's configuration. If you use Cloudflare or another reverse proxy, the returned addresses may belong to the proxy rather than your hosting server. That's expected when the proxy is enabled.</p>
<p>To see which nameservers are authoritative for your domain:</p>
<pre><code class="language-bash">dig +short example.com NS
</code></pre>
<p>You can also query a public resolver:</p>
<pre><code class="language-bash">dig @1.1.1.1 +short example.com A
</code></pre>
<p>If you use Windows, <code>nslookup</code> provides a simple alternative:</p>
<pre><code class="language-powershell">nslookup example.com
</code></pre>
<p><strong>What are you looking for?</strong></p>
<p>The domain should resolve according to your intended DNS setup. Unexpected addresses, outdated IPv6 records or incorrect nameservers deserve investigation.</p>
<p>Remember that cached DNS responses can remain visible for a while. Different resolvers may return different results during a cutover.</p>
<h2>2. Test the New Server Before Public DNS Changes</h2>
<p>If you still haven't switched DNS, you can test a destination server directly without modifying your computer's hosts file.</p>
<p>For example:</p>
<pre><code class="language-bash">curl --resolve example.com:443:203.0.113.10 -I https://example.com/
</code></pre>
<p>In this example, <code>203.0.113.10</code> is a documentation-only IP address. Replace it with your actual destination server's public IP.</p>
<p>The command tells cURL to connect to that IP while requesting the domain over HTTPS.</p>
<p>This is useful for checking whether the destination server is configured to serve the correct website and certificate.</p>
<p>It does not guarantee that the entire WordPress application works, so continue with functional checks.</p>
<p><strong>Important:</strong> Do not disable TLS certificate verification just to make a failed test pass. A certificate mismatch is something to investigate, not hide.</p>
<h2>3. Verify HTTPS on Every Important Hostname</h2>
<p>A website can have a valid certificate for <code>example.com</code> and still have a problem with <code>www.example.com</code>.</p>
<p>Start by checking both versions:</p>
<pre><code class="language-bash">curl -I https://example.com/
curl -I https://www.example.com/
</code></pre>
<p>Depending on your chosen canonical hostname, one version may redirect to the other.</p>
<p>Check the complete redirect sequence:</p>
<pre><code class="language-bash">curl -IL --max-redirs 5 http://example.com/
</code></pre>
<p>You want the request to reach the intended HTTPS destination without an unnecessary chain or loop.</p>
<p>Also open the website in a browser and check:</p>
<ul>
<li>The SSL certificate is valid for the hostname.</li>
<li>The browser doesn't report a certificate error.</li>
<li>Images, scripts and stylesheets load over HTTPS.</li>
<li>Important forms and login pages work securely.</li>
</ul>
<p>If you use a CDN or reverse proxy, remember that HTTPS configuration may exist in more than one place.</p>
<p>A redirect loop can happen when the proxy and the origin server disagree about whether a request is already using HTTPS.</p>
<h2>4. Confirm WordPress Is Using the Correct URLs</h2>
<p>WordPress stores important website addresses in its configuration.</p>
<p>If WP-CLI is available, you can inspect them without changing anything:</p>
<pre><code class="language-bash">wp option get home
wp option get siteurl
</code></pre>
<p>The <code>home</code> option typically represents the public site address, while <code>siteurl</code> identifies the WordPress installation address.</p>
<p>For a standard WordPress installation, you would normally expect these values to match your intended setup.</p>
<p>They do not always need to be identical. WordPress can legitimately be installed in a subdirectory.</p>
<p>If you've changed domains, review database URLs carefully.</p>
<p>WordPress content and plugin settings can contain serialized data, so performing a careless SQL text replacement can damage configuration.</p>
<p>Use migration-aware tooling and test replacements before making database changes.</p>
<p>Do not run write operations against production without a verified backup and rollback plan.</p>
<h2>5. Check Redirects Beyond the Homepage</h2>
<p>Here's a common migration mistake:</p>
<p>The homepage works, so everyone assumes the redirects work too.</p>
<p>But Google, customers and other websites may still link to older URLs.</p>
<p>Create a small list of important pages, such as:</p>
<ul>
<li><code>/about/</code></li>
<li><code>/contact/</code></li>
<li><code>/services/</code></li>
<li><code>/blog/</code></li>
<li><code>/shop/</code></li>
<li>Popular product or service pages</li>
</ul>
<p>Test each URL.</p>
<p>For example:</p>
<pre><code class="language-bash">curl -IL --max-redirs 5 https://example.com/old-page/
</code></pre>
<p>If the page has permanently moved, a <code>301</code> or <code>308</code> redirect may be appropriate.</p>
<p>The redirect should lead to the most relevant replacement page—not automatically send every old URL to the homepage.</p>
<p>Watch for:</p>
<p><strong>Redirect loops:</strong> The browser keeps bouncing between two URLs.</p>
<p><strong>Redirect chains:</strong> A request passes through several unnecessary destinations.</p>
<p><strong>Unexpected 404s:</strong> Old URLs no longer exist and have no appropriate replacement.</p>
<p><strong>HTTP/HTTPS inconsistencies:</strong> Different versions of a URL lead to unexpected locations.</p>
<p>Remember that some applications do not support HTTP <code>HEAD</code> requests correctly. If <code>curl -I</code> behaves differently from a browser, repeat the test using a normal <code>GET</code> request before diagnosing a fault.</p>
<h2>6. Check SEO Signals After the Migration</h2>
<p>Even when visitors can use the website, search engines may receive conflicting signals.</p>
<p>Inspect a few important pages and verify:</p>
<p><strong>Canonical URLs:</strong> Does each page identify the intended canonical address?</p>
<p><strong>Robots directives:</strong> Was a temporary staging <code>noindex</code> accidentally left enabled?</p>
<p><strong>Internal links:</strong> Do links point to the current URLs?</p>
<p><strong>Sitemap:</strong> Does it contain the correct indexable pages?</p>
<p><strong>Redirects:</strong> Do old URLs resolve to appropriate destinations?</p>
<p>For domain or URL changes, Google's official site-migration documentation recommends mapping old URLs to new ones and monitoring the process through Google Search Console.</p>
<p>If you're simply moving hosting providers without changing public URLs, the main goal is keeping those URLs available and stable.</p>
<p>A server migration shouldn't accidentally become a website-wide URL migration.</p>
<h2>7. Don't Forget the Real Customer Experience</h2>
<p>Technical checks are important, but they aren't the end of the process.</p>
<p>A successful migration should preserve the functionality your visitors rely on.</p>
<p>Before signing off, test:</p>
<ul>
<li>Contact forms</li>
<li>WordPress login</li>
<li>WooCommerce checkout, if applicable</li>
<li>Account registration and password resets</li>
<li>Transactional email delivery</li>
<li>Scheduled tasks</li>
<li>Image and file uploads</li>
<li>Important third-party integrations</li>
</ul>
<p>For stores and booking websites, use test transactions or safe staging environments rather than placing unnecessary live orders.</p>
<p>Keep an eye on application logs and customer support reports after the cutover.</p>
<p>Sometimes the first sign of a migration problem is not a server error. It's a customer saying they never received their confirmation email.</p>
<h2>A Simple Post-Migration Checklist</h2>
<p>Before considering the migration complete, confirm that:</p>
<ul>
<li><input disabled type="checkbox" /> DNS points to the intended infrastructure.</li>
<li><input disabled type="checkbox" /> IPv4 and IPv6 records have been checked.</li>
<li><input disabled type="checkbox" /> SSL certificates work for the required hostnames.</li>
<li><input disabled type="checkbox" /> HTTP redirects to the intended HTTPS URL.</li>
<li><input disabled type="checkbox" /> WordPress home and site URLs are correct.</li>
<li><input disabled type="checkbox" /> Important pages return the expected responses.</li>
<li><input disabled type="checkbox" /> Old URLs redirect to relevant destinations where appropriate.</li>
<li><input disabled type="checkbox" /> Canonical URLs and indexing directives are correct.</li>
<li><input disabled type="checkbox" /> Forms, email and critical customer workflows work.</li>
<li><input disabled type="checkbox" /> Backups and a rollback procedure remain available.</li>
</ul>
<h2>Final Thoughts</h2>
<p>A WordPress migration isn't successful simply because the website loads.</p>
<p>It's successful when the domain resolves correctly, HTTPS works, important URLs remain accessible and customers can continue using the website without unexpected interruptions.</p>
<p>The most useful migration checklist is one your team can actually follow and verify—not just a document that says everything should be fine.</p>
<p>For more structured migration preparation, see the <a href="https://github.com/afifasulehricom/webiost-wordpress-migration-toolkit">Webiost WordPress Migration Preflight &amp; Rollback Toolkit</a>. It includes practical checklists and troubleshooting guidance.</p>
<h3>Further Reading</h3>
<ul>
<li><a href="https://developer.wordpress.org/advanced-administration/upgrade/migrating/">WordPress Official Migration Handbook</a></li>
<li><a href="https://developer.wordpress.org/cli/commands/option/">WP-CLI Option Commands</a></li>
<li><a href="https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes">Google Search Central — Site Moves</a></li>
</ul>
<hr />
<p><em>Published by Webiost — Practical WordPress, Hosting &amp; Infrastructure Guides</em></p>
]]></content:encoded></item></channel></rss>