Website Rescue

Preflight Checklist

Run Screaming Frog before rescue: Analyze site for current SEO status and structure.

Look for iframe content if WordPress: Ensure iframes are identified for special handling.

Request a current KW list: Secure up-to-date keywords from the client.

Run Benchmark Backlinks (BLs) before rescue: Establish a backlink profile for comparison.

Run Google Page Speed test before rescue: Document site’s performance baseline.

Verify domain access: Ensure credentials and access to the domain are functional.

Verify GA4 Tags: Check for Google Analytics 4 implementation in code.

Verify client email address for Adder: Confirm lead management email settings.

Verify practice real phone numbers: Validate main practice numbers for CTM implementation.

WinHTTrack Site Scraping

Scrape and keep a complete copy of current site using WinHTTrack: Preserve original site data.

Example Settings:

  • Limits
    • Maximum mirroring depth:4
    • Maximum external depth:0
  • Links
    • Attempt to detect all links
    • Get non-HTML files
    • Get HTML files first
  • Build
    • No error pages
    • No external pages
    • Hide passwords
  • Spider
    • Accept cookies
    • Parse Java files
    • Update hacks
    • Check document type “If unknown (except /)”
    • Spider “robots txt except wizard”
  • Browser ID
    • Use modern browser ID (example below)
    • HYML footer (none)
    • Additional HTTP headers – leave blank
    • Create a cookie to bypass mirroring errors for sites with anti-scrape technology
    • Log Index Cache – Create Log Files

Modern Browser ID

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36

Ensure no ‘scraped by WinHTTrack’ branding appears on output files.

Use .xml sitemap to verify pages and posts

Create .htaccess file from xml sitemap.

If there is no XML sitemap, then HTML sitemap, use ‘Link Extractor‘ plugin for URL inventory.

Work from a copy of the original scrape: Maintain data integrity by using duplicates.

Identify pages versus blog posts: Categorize content properly for CMS integration.

Rebuilding Rescued Site in CMS

Flatten URLs for smaller sites: Simplify links to enhance SEO and user navigation.

Check for broken links: Ensure all internal and external links function correctly.

Ensure working practice phone number throughout site: Match GMB listing or verify with the client.

Add new CTM numbers where applicable: Implement call tracking mechanisms.

Transfer SEO elements: Include H1, H2, H3 tags, titles, and descriptions.

Enable Canonicals: Prevent duplicate content issues.

Check robots.txt file: Ensure site visibility to search engines.

Review and verify XML sitemap: Confirm all pages are listed for crawling.

Ensure proper alt tags for images: Optimize for SEO.

Update .htaccess: Use scraped URLs to build redirects.

GA4 code – Verify tracking analytics code on site.

Website Forms – Use Adder form action script and test forms   

Staging WordPress Rescues

Stage site on server: Test functionality in a controlled environment before going live.

Switch domain at go-live time: Transition from the pseudo domain to the actual domain seamlessly.

Server Settings for Speed Optimization

Set SSL configurations for HTTP to HTTPS redirection.

Enable Fast CGI for better performance.

Activate custom error documents.

Set content expiration rules for static assets:

NGINX Settings – Additional Directives

# Caching and Compression
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_proxied any;
gzip_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml image/x-icon image/bmp image/webp image/jpeg image/png image/gif;
gzip_vary on;

# X-Content-Type-Options
add_header X-Content-Type-Options "nosniff" always;

# Handling versioned static files
location ~* ^(.+)\.(\d+)\.(ac3|avi|bmp|bz2|css|cue|dat|doc|docx|dts|eot|exe|flv|gif|gz|htm|html|ico|img|iso|jpeg|jpg|js|mkv|mp3|mp4|mpeg|mpg|ogg|pdf|png|ppt|pptx|qt|rar|rm|svg|swf|tar|tgz|ttf|txt|wav|woff|woff2|xls|xlsx|zip|webp)$ {
try_files $uri $1.$3 =404;
etag on;
if_modified_since exact;
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
}

# Handling non-versioned static files
location ~* \.(ac3|avi|bmp|bz2|css|cue|dat|doc|docx|dts|eot|exe|flv|gif|gz|htm|html|ico|img|iso|jpeg|jpg|js|mkv|mp3|mp4|mpeg|mpg|ogg|pdf|png|ppt|pptx|qt|rar|rm|svg|swf|tar|tgz|ttf|txt|wav|woff|woff2|xls|xlsx|zip|webp)$ {
etag on;
if_modified_since exact;
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
}

Speed Adjustments – Optional

Implement debounce techniques for JavaScript event handlers: Enhance site interactivity and responsiveness.

js code

<script> function onScroll(evt) { // Throttle scroll events to avoid performance hits } window.addEventListener(‘scroll’, onScroll); </script>

Save under /assets/js and call from template with <script> tags

Go Live

Point A record: Update DNS settings for domain activation.

Install WordPress: Set up the primary CMS.

Load blog posts: Import content into the new system.

Run Screaming Frog post-launch: Analyze SEO and link integrity.

Conduct W3C validation: Fix any compliance issues.

Fill out forms and verify receipt in Adder: Test form functionality and integration.

Create Robots.txt

Check meta for nofollow

WordPress Post Installation

2x Titles – Remove hard coded Title tag carried over from site template in header

Update Yoast – Import settings from current Yoast model

Remove Comments (comments.php)

Updated on August 27, 2024
Was this article helpful?

Related Articles