Skip to content
Feast Design Co.
  • Get the Feast Plugin
  • DocumentationExpand
    • Feast Plugin
    • Feast+
  • Open a Support Ticket
New to Feast? Start Here
Login/Account
Feast Design Co.

Getting Started

3
  • Migrating to Feast
  • Staging Site
  • Sign Up For The Newsletter

Genesis Setup

15
  • Edit Post Info
  • Update Author Bio
  • Modern Navigation
  • Clear Cache ‼️
  • Layout
  • Modern Index
  • Feast Plugin Setup
  • Modern Homepage Setup
  • Modern Menu for Desktop
  • Modern Mobile Menu
  • Sidebar
  • Modern 404
  • Modern Recipe Index
  • Modern Categories
  • Modern Footer

Plugin Settings

18
  • Edit Body Font Size
  • Subscribe button
  • Social Icons
  • Recipe Key
  • Post Template
  • Table of Contents
  • Post IDs
  • Google Trusted Source
  • Edit Leave a Reply
  • Disable Trackbacks
  • Modern Previous + Next
  • Posts per page
  • Breadcrumbs
  • Productivity
  • Smooth scrolling
  • Image unlink
  • Replace recipe card Jump To buttons
  • BETA

Block Editor 101

4
  • Block Editor
  • Block themes
  • Patterns
  • Why we don't support block-level styling

Blocks & Patterns

15
  • Post Template
  • Numbered Lists
  • Table of Contents
  • Full Width Banner
  • Featured Recipe Pattern
  • Why we don't support block-level styling
  • Process Shots
  • Inline Heading Group Block
  • Step Instructions
  • Advanced "Jump To" Links
  • Reader Review
  • Feast Patterns
  • Displaying Post Blocks (FSRI)
  • Displaying Category Blocks (FSCI)
  • Scheduled Categories

Page Templates

3
  • Custom 404
  • How to use Categories
  • Shop page

Customize

8
  • Customizer
  • Customizations
  • Customization Referrals
  • Why we don't support block-level styling
  • Per Page CSS
  • Why you shouldn't make customizations
  • Custom CSS
  • Customization Support

Images

10
  • Post Images
  • Default Image Size
  • Modern post image sizes
  • How thumbnails work
  • Modern Thumbnails (Featured Images)
  • Troubleshooting Featured Images
  • Displaying Post Blocks (FSRI)
  • Process Shots
  • Image Alt Tags
  • Why do my images look different in edit post and live?

Feast+

32
  • What is Feast+?
  • Feast+ Setup
  • Design Kits
  • Feast+ Fonts
  • Feast+ FAQ
  • Feast+ Showcase
  • Feast+ Pre-Built Pages
    • Feast+ Homepage
    • Feast+ Index
    • Feast+ Category Pages
    • Social Landing Page (Link In Bio)
  • Branding & Design
    • Feast Fonts
    • Feast+ Branding & Design
  • Feast+ Patterns
    • Top Banner
    • Custom list styling
    • Numbered Lists
    • Full Width Banner
    • Feast+ Footer
    • Feast+ Call to Action
    • Icon Tip Boxes
    • As Seen In
    • Reader Review
  • Feast+ Features
    • Full-Width Post Header
    • Custom List Styling
    • Colored Numbered Lists
    • Top 10 List Styling
    • Step Instructions
    • Heading Styling
    • Top of Site CTA Banner
    • Custom Background Pattern
  • Design Kits
    • Feast+ Design Kits (Members)
    • Feast+ Design Kit Library
    • Feast+ Design Kit Instructions

Recipes

7
  • Reviews
  • Recipe Key
  • Ingredients
  • Displaying Category Blocks (FSCI)
  • Displaying Post Blocks (FSRI)
  • Featured Recipe Pattern
  • All Recipes

Social Sharing

2
  • Social Icons
  • Tiktok

Logo & Fonts

5
  • Retina Quality Logo
  • Create your logo
  • Edit Body Font Size
  • Fonts
  • Logo

Categories

3
  • Why Isn't the Category Description Appearing?
  • Displaying Category Blocks (FSCI)
  • How to use Categories

Blogging Resources

15
  • Food Blog Sitelinks
  • Photography
  • Understanding "penalties"
  • Food Blog Page Structure
  • Food Blog Site Structure
  • Comments
  • Internal links
  • Analytics
  • Pagespeed
  • SEO for Food Bloggers
  • Modern guidelines for page headings
  • How to Write a Recipe Post
  • Recipe Page Guidelines for Food Bloggers
  • Image Optimization
  • Recipe Update Checklist

Speed & SEO

18
  • Image Alt Tags
  • Speculative Loading
  • Google Trusted Source
  • 301 Redirects, Links, Canonical and Pagespeed
  • Image file size vs. pagespeed
  • Duplicate Content
  • Lazyloading comments
  • CLS
  • Blocking Time
  • SEO
  • Skip lazy loading first post image
  • Horizontal scrolling
  • Smooth scrolling
  • Pagination
  • Pingbacks
  • INP (Interaction to Next Paint)
  • CDNs
  • Site Speed

Legal Resources

5
  • Legal Resources
  • DMCA and Copyright Infringement
  • Copyrights
  • Accessibility
  • Private Label Rights (PLR)

Troubleshooting

10
  • Why do my images look different in edit post and live?
  • Why Isn't the Category Description Appearing?
  • Troubleshoot Plugin Conflicts
  • How to update your theme
  • Feast Plugin FAQ
  • W3 HTML Validation
  • Sorry, this file type is not permitted for security reasons.
  • Troubleshooting Featured Images
  • Either "name" or "item. name" should be specified (in "itemListElement")
  • Clear Cache ‼️

Compatibility

2
  • Compatibility
  • WP 6.7

Integrations

8
  • Ecommerce
  • Ingredients
  • Google Trusted Source
  • Contact Forms
  • Translation
  • WP Recipe Maker
    • Reviews
    • QR Code
    • Ingredients

Developer Resources

6
  • Multisite
  • Feast Plugin Deprecated
  • W3 HTML Validation
  • Feast Plugin: Disable Theme Google Fonts
  • Rethinking the Thumbnails
  • Design
View Categories
  • Home
  • Documentation
  • Genesis (Legacy)
  • Speed & SEO
  • 301 Redirects, Links, Canonical and Pagespeed

301 Redirects, Links, Canonical and Pagespeed

This is a slightly more advanced coverage of a few pagespeed topics, as an extension of the SEO for food bloggers post. If you've been running a food blog for a few years, you need to correct this.

This post spawned from a webinar put on by Casey Markee and Arsen Rabinovich, which you can find at: SEO Site Auditing for WordPress

What is HTTP status?

An HTTP status code is a response web servers use to talk to browsers. Simply: it's a computer-only code that your website gives your computer to know whether the page they asked for exists.

Wikipedia has an overview here.

This is something you'll want to review and improve every year or two, as part of a general maintenance program.

How to check your HTTP status

You can plug any URL into https://httpstatus.io/ to get a redirect chain. Ideally, you want this to be a single line - the link simply returns a 200 (success) without any 301 (redirect).

The most common redirects we see include:

  1. 301 redirect from HTTP to HTTPS, then
  2. 301 redirect from date-based URL to non-date-based URL
  3. 301 redirecting to the page version with a "/" on the end of the URL
  4. Finally, a 200 "Okay" status

The total time for this can be 1-2 seconds, which is a complete waste of your visitors time and can impact your pagespeed and therefore rankings.

Updating your in-content links will speed up your website and avoid any unnecessary pagespeed penalties.

Updating your in-content links

Anybody who's been blogging for a while will have lots of internal links pointing to pages that have been 301'd. This is also true if you've switched from HTTP to HTTPs and have forced redirection on.

Even if your host or a developer has automatically redirected all pages from HTTP to HTTPS at the server level (eg. via .htaccess), your in-content links may still be pointing to the old URLs, slowing down pagespeed.

This is not something that typically gets covered (we've literally never seen it covered), as it involves extra work that is easy to screw up.

How to update in-content links

We've done this for a few websites, and it's relatively simple. Here's the steps:

  1. BACK UP YOUR WEBSITE! Don't move forward before doing this

2. Add the "Better Search and Replace" plugin by going to Admin > Plugins > Add New > Search "better search replace" > Install

3. Activate it, then go to Tools > Better Search Replace

If not using www:

  • Perform a search for href="http://yourdomain.com and replace for href="//yourdomain.com
  • Select your posts table from the "Select tables" option
  • You may use "Case-insensitive", but don't select "Replace GUIDs"
  • Run as dry run first, and if all is okay, untick the "Run as dry run" box and run again

If using www:

  • Perform a search for href="http://www.yourdomain.com and replace for href="//www.yourdomain.com
  • Select your posts table from the "Select tables" option
  • You may use "Case-insensitive", but don't select "Replace GUIDs"
  • Run as dry run first, and if all is okay, untick the "Run as dry run" box and run again

IMPORTANT

I use "//" as the front part - this is perfectly web legal. It will link to HTTP if the page is HTTP, and HTTPS if the page is HTTPS. Some people may recommend specifying "https://", but if your SSL certificate ever fails, this can cause a problem. It's a safety measure to use no protocol. This is especially useful when linking images.

I use the href=" portion in search, because that will only match LINKS, rather than all instances of your domain (eg. simple text, image src).

There are no closing quotations or final slash - this is intentional, so that it partial matches all links, rather than just links to your homepage

Removing or adding www

Your website should be configured to either use www.domain.com, or just domain.com. I personally prefer domain.com without the www because it's cleaner looking, but there's no penalty for having the www in front.

I wouldn't recommend changing this however, as it does result in a redirect, and you may lose some authority due to "changing domains". More input is needed on this.

If not using www:

  • Perform a search for href="//www.yourdomain.com and replace for href="//yourdomain.com
  • This replaces all link instances of "www.yourdomain.com" with "yourdomain.com"
  • Select your posts table from the "Select tables" option
  • You may use "Case-insensitive", but don't select "Replace GUIDs"
  • Run as dry run first, and if all is okay, untick the "Run as dry run" box and run again

If using www:

  • Perform a search for href="//yourdomain.com and replace for href="//www.yourdomain.com
  • This replaces all link instances of "yourdomain.com" with "www.yourdomain.com"
  • Select your posts table from the "Select tables" option
  • You may use "Case-insensitive", but don't select "Replace GUIDs"
  • Run as dry run first, and if all is okay, untick the "Run as dry run" box and run again

Check your website URL settings

You should also make sure your site is configured properly for www or non-www in Settings > General

Note that in this screenshot, the host has locked the settings for safety reasons (protecting me from myself) and I'd need to reach out to my host to host to update this.

These two should always match - don't run a food blog as a sub-domain or in a sub-folder.

Check your canonical settings

This section is not complete.

Your canonical settings should match what's been set in your website URL settings, and the links that you've updated in the previous section. If you're using www, make sure the www appears in the canonical. If you're not using www, make sure the www is not appearing in the canonical.

eg. <link rel="canonical" href="https://foodiepro.com/threaded-comments/" />

This is controlled by (Yoast or WordPress?).

Removing date-based URLs from your links

People who've migrated from a date-based post structure to post-name in Admin > Settings > Permalinks almost always still have those date-based links in their content. This technically works thanks to the redirects, but creates a redirect chain that slows your pagespeed, and is a poor quality signal to search engines.

We do recommend using post-name as the permalinks setting, but do not do this yourself - you will break all your search engine traffic and internal links. Hire Grayson @ imarkinteractive.com to set this up properly for you.

Date-based URLs are sometimes set up to use /year/month/date or just year/month, you'll need to determine which it is before proceeding.

If using /year/month:

  • Perform a search for href="//www.yourdomain.com/2016/07/ and replace for href="//yourdomain.com/
  • You will need to do this for each instance year+month you created.
  • This replaces all link instances of "yourdomain.com/yyyy/mm/" with "yourdomain.com/"
  • Select your posts table from the "Select tables" option
  • You may use "Case-insensitive", but don't select "Replace GUIDs"
  • Run as dry run first, and if all is okay, untick the "Run as dry run" box and run again
  • Important: Make sure you have the href=" portion in there, plus the trailing slash - replacing JUST the dates will unlink all your images

If using /year/month/date, you'll want to hire someone to use regex directly on the database.

Was this helpful?

  • Happy
  • Sad
Google Trusted SourceImage file size vs. pagespeed

Products

  • Feast Plugin
  • Feast+
  • Feast+ White Glove
  • Feast+ Style Refresh
  • Done-for-you Services
  • Demo trial
  • Themes
  • Theme Install Service
  • Classic Themes
  • Lattice Plugin
  • Travel
  • Logo creation

Help

  • Kadence tutorials
  • Kadence Install
  • Documentation & Tutorials
  • Feast+ Members
  • Discounts & Coupons
  • Trellis 2.0
  • Trellis
  • Trellis Migration
  • Compatibility
  • Support
  • Legal resources
  • Genesis vs. Kadence
  • Changelog
  • How to start a blog course

Company

  • Privacy Policy
  • Refund Policy
  • Terms & Conditions
  • Why Feast
  • Principles & Best Practices
  • Affiliates
  • Contact
  • Opinion Disclaimer
  • AI Policy

Copyright ©  2026 · Feast Design Co. Results not typical or guaranteed. Our themes and plugins are just a small part of the overall effort involved in running a food blog. Nothing on this website shall constitute legal or financial advice, always consult a local lawyer and accountant. Accessing this website and all transactions herein are under the laws and jurisdiction of Toronto, Ontario, Canada. All pricing is USD.

  • Get the Feast Plugin
  • Documentation
    • Feast Plugin
    • Feast+
  • Open a Support Ticket
Facebook X Instagram
Search