Our themes come pre-designed for SEO as best as they can be, but we cover only a fraction of what it takes to compete in search in rankings. Functionality does not belong in themes.
Below, you'll find our recommended settings for these plugins.
- WordPress + Genesis settings
- Feast Plugin
- Mediavine + AdThrive
- Yoast SEO Plugin
- WP Rocket Plugin
- Pagespeed targets
- Feast Plugin
- Food-Blog Specific Configurations
- Evaluating Food Blog Recipe Quality
- SEO Articles for Food Bloggers
- Advanced: deferring script loading
- 💬 Comments
WordPress + Genesis settings
The default WordPress setup isn't optimal for search engine crawling and indexing. This leaves a lot of bloggers - especially new ones - unable to compete with sites who have spent the time to properly optimize their site.
Below is a list of changes we recommend making:
- For new blogs: Change date-based URLs to post-name in Admin > Settings > Permalinks
- Note: for existing blogs with a history, you'll want to do this carefully, and set up 301s - or not at all. We recommend hiring an SEO expert to manage this.
- See this overview from Yoast
- If changing to non-date-based URLs, make sure to use this service from iMark Interactive to fix your automatic redirects.
- Note: You'll also need to update your manually-written internal links
EnableDisable breadcrumbs in Genesis > Theme Settings > Breadcrumbs > Single Posts, Pages
- Updated 2019/06/07 - Genesis breadcrumbs should be disabled, and you should only use the Yoast breadcrumbs.
- See the Breadcrumbs section in Yoast SEO Plugin, below
- Add content to your category pages
- Set up Google Analytics
- Set up Google Search Console
Set your preferred domain to non-www
- As of July 2019, Google has merged these all together
- Enable SSL (via your web hosting company) and enable forceful redirect to HTTPS
- Forcefully redirect all pages to non-www for shorter URLs, which help with click-through-rates in Google
- This is more important for new bloggers than established bloggers, but existing bloggers should be forcing people from one version or the other to avoid spreading links and content across two subdomains
- Disable pingbacks in Admin > Settings > Discussion > Attempt to notify any blogs linked to from the article
- Pingbacks are nofollow, which provide no value to you
- Disable pingbacks in Admin > Settings > Discussion > Allow link notifications from other blogs (pingbacks and trackbacks) on new articles
- Pingbacks are nofollow and provide no value to readers, and are mostly spam
- Disable avatars in Admin > Settings > Discussion > Show Avatars (unchecked)
- Avatars provide no reader value, and slow down pagespeed by loading third-party images (gravatar)
- Note: this may break the user-profile widget in the sidebar, replace it with a custom html user profile widget
- Set your "Edit Post Info" using our default recommendation with published, modified and author link
- Set your author link
- Enable system fonts
- Follow our Recipe Update Checklist when updating posts (print it off if necessary)
Mediavine + AdThrive
Go into Mediavine and AdThrive settings and enable their lazyloading and CLS optimization settings.
Enable the Slickstream CLS fix.
Yoast SEO Plugin
We recommend using at minimum the free version of Yoast, which handles a lot of the configuration and automatically applies best practices to your site and posts. We recommend making the following settings are enabled:
- Yoast > Search Appearance > Taxonomies > Categories > Show Categories in Search > Yes
- Yoast > Search Appearance > Taxonomies > Categories > Show Tags in Search > No
- Note: Check Google Search Console to make sure tags pages aren't currently driving traffic
- Yoast > Search Appearance > Taxonomies > Categories > Format Based Archives > Disabled
- Yoast > Search Appearance > Taxonomies > Category URLs > Remove the Categories prefix > Remove
- New blogs only
- Note: Check Google Search Console to make sure these aren't currently driving a lot of traffic. Yoast will handle the redirects.
- Note: Hire an SEO expert when making permalink changes
- Yoast > Search Appearance > Archives > Author Archives > Disabled
- Yoast > Search Appearance > Archives > Date Archives > Disabled
- Yoast > Search Appearance > Breadcrumbs > Enabled
- If not displaying, enable the "Add Yoast Breadcrumbs" setting in the Feast Plugin.
- Yoast > Search Appearance > Breadcrumbs > Taxonomy to show in breadcrumbs for content types > Posts > Category
- Yoast > Search Appearance > Breadcrumbs > Breadcrumbs settings > Anchor text for the homepage > BLANK
- Readers can reach your homepage via the logo, so linking to the homepage in the breadcrumbs is pointless, and makes them unnecessarily long
- Yoast > General > Knowledge Graph & Schema.org > Site Represents > Organization
- Yoast > General > Knowledge Graph & Schema.org > Organization Name > insert your site name
- Yoast > General > Knowledge Graph & Schema.org > Organization Logo > your logo, 1000x1000px
Note: if your blog has been active for a while, make sure to check in Google Search Console that these pages are not driving significant traffic.
We're also fans of purchasing the premium version of Yoast, which auto-handles 301'ing URLs when they're deleted or changed.
Here are some great articles from Yoast:
- How to Avoid Common SEO Mistakes
- Site Structure Mistakes to Avoid
- Copywriting Mistakes to Avoid
- Why Breadcrumbs are Important for SEO
WP Rocket Plugin
WP Rocket is another premium plugin that's worth the investment. Pagespeed is one of the top ranking factors for blogs in 2019.
- Settings > WP Rocket > Media > Lazy Load > Enable for mages
- Settings > WP Rocket > Media > Lazy Load > Enable for iframes and videos
- Note: If you're running MediaVine or AdThrive: don't enable this.
- Settings > WP Rocket > Media > Lazy Load > Replace youtube iframe with preview image
- Settings > WP Rocket > Media > Emoji > Disable Emoji
- note: this disables WordPress' poor implementation of Emojis, not the proper text-based emojis
- Settings > WP Rocket > Media > Image Dimensions > Add missing image dimensions
- Settings > WP Rocket > Media > Embeds > Disable WordPress Embeds
- Settings > WP Rocket > Media > WebP compatibility > Enable Webp Caching (DISABLED!)
- Do not use WebP
- Settings > WP Rocket > File Optimization > Optimize CSS delivery
- Settings > WP Rocket > File Optimization > Safe Mode for jquery
- Settings > WP Rocket > Cache > Enable caching for mobile devices
- Note: only use this if you don't have caching built in to your hosting
- Settings > WP Rocket > Preload > Activate Preloading + Activate sitemap-based cache preloading + Yoast SEO XML sitemap
- It shouldn't be necessary to specify the Yoast sitemap index in the box, but you can if you'd like
- Settings > WP Rocket > Preload > Prefetch DNS Requests > URLs to prefetch
- Add the recommend DNS prefetches from this source, removing any services/plugins that you don't use
- Settings > WP Rocket > Add-Ons > Google Tracking
- Settings > WP Rocket > Add-Ons > Facebook Pixel
- IMPORTANT: remove the following from the pre-populated list:
/gtag/js gtag( /gtm.js /gtm- google-analytics.com/analytics.js ga( ' ga(' adsbygoogle.js font-awesome
Add the following to the scripts to delay:
comment-reply hoverIntent superfish
If running WPRM, you may want to experiment with also adding:
Remove this - it does nothing if WP Rocket is properly configured.
- Admin > Settings > Shortpixel > General > Resize large images > DISABLED
- Admin > Settings > Shortpixel > General > Compression type > Lossy
- This should work for most people, but you may need to tweak your process (make sure images look good on mobile)
- Admin > Settings > Shortpixel > Advanced > WebP Images > Also create WebP images for free > DISABLED
Use the Google Pagespeed Insights tool to benchmark your pagespeed - check both your homepage and posts.
You want to achieve:
- First Contentful Paint (FCP) = 2.0 secs or faster
- Speed Index (SI) = 3 secs or faster
- Time To Interactive (TTI) = 5 secs or faster
- FCP = 2.2 secs or faster
- SI = 4.3 secs or faster
- TTI = 9 secs or faster (minimum) -- usually, we can get 7-8 with optimizations
Your server response time should be under 400ms. If it's not, contact your host. If they're unable to fix this, change your host.
The Feast Plugin has a number of user-first and SEO-centric optimizations built in:
- Modern Homepage fixes a number of SEO and accessibility issues
- Modern Mobile Menu to display more content above-the-fold
- Enabled, with mobile-specific logo and retina logo specified
- feast-modern-mobile-menu menu, built with mobile traffic in mind
- Comments - Enable:
- Edit Post Info
- Include "Last Modified" info
- Include post_author_link
- Simple Category Index to improve internal linking to your category pages
- Add the Advanced Jump To Links to your posts
- Implement the System Font stack
- Use the WP External Links plugin to mark external links as "opens in new window"
We've released the Recipe Update Checklist in the Feast Plugin, which contains all of these and dozens more.
- Use alt text to describe the image for screen readers on every image
- Describe what's in the image + provide context
- Use headings as headings - not as text
- We generally recommend restricting your tags to h2 - use h3 if absolutely necessary, but never h4, h5, h6 unless it's a technical document
- Headings are used by Google and screen readers
- Avoid abbreviations and industry-specific jargon
- Use an 8th-grade reading level for your content
- Use correct anchor text - concise and description
- Do not use "Read More" or "Click Here"
- Link to the page title or text you want to draw attention to
Review the Google SEO Starter Guide.
Food-Blog Specific Configurations
"categories" and "tags" are general WordPress functions, which can be co-opted for additional functionality in food blogs.
The category pages should be thought of as a sort of "recipe index", grouping similar recipes together.
Tags are often used as ingredients, and can be used to sort other recipes by major ingredients. Because the quantity of tags tends to blow up (with a dozen+ ingredients per recipe), tags should be noindexed in Yoast per the instructions below.
As of 2020, we actually recommend just deleting tags altogether.
Evaluating Food Blog Recipe Quality
Head over to our Recipe Quality Guidelines for Food Bloggers post to learn about the different facets of your blog that search engines find valuable.
SEO Articles for Food Bloggers
We recommend following the advice in the following resources:
- Casey Markee on SEMRush
- Casey Markee on DishingWithDelishes
- Casey Markee on FBP
- Casey, Andrew and Arsen on SEO tips for publishers (video)
- Google's guidelines on creating high quality sites
Pitch Your Blog Email Template
Need some help crafting the perfect email to pitch your blog? I’m here to help! Download the template now.
Advanced: deferring script loading
This is an advanced technique that we don't offer support for, but have tested and found to be very effective.
When putting scripts that are known to cause loading penalties in Google Pagespeed Insights (eg. the Facebook pixel), the code can be wrapped in a function that defers the script until after the page loads. See this solution for deferring the Facebook pixel.
There may be unknown consequences to this, including minification issues and scripts loading out of sequence. A high degree of technical competence is necessary for implementing and testing this.