SEO Guide for RapidWeaver: Best Practices in 2024

Wanted to put together a simplified (and starter) guide to SEO. This has been a focus of mine for the last 15 years and we’ve managed to rank 100s of sites.

Whether you’re a business owner managing your own website, a freelancer, an agency, or just someone seeking to drive more organic traffic, this guide is your key to better understanding SEO in 2024.


Understanding the SEO Basics

Remember: Search engines like Google aim to present users with content that’s relevant and trustworthy. If someone searches for “red couch,” they shouldn’t see results for blue couches. This simple principle paves the way for understanding the essence of SEO.


1. Keywords: The Starting Point

  • Research: Before anything, figure out what terms people use when searching for your services. Use free or paid keyword tools.
  • Integration: Google Search Console is a must-have. It provides real data (as opposed to projected) that can guide your keyword strategy.
  • Categorize: Understand the intent. Differentiate between broad keywords like “fencing ideas” and specific ones like “fencing contractors.”

2. Content: Match It with Keywords

  • Service Pages: Align keywords with respective service pages. Every service should ideally have its distinct page.
  • Blog Content: Craft articles around each service or keyword. Maintain authenticity; avoid using unrelated terms or stuffing keywords.

3. Technicalities: Fine-Tuning Your Site

While content is king, the technical underpinnings of your site can’t be ignored. Here’s what you need to focus on:

  • Meta Data: Each page needs a Meta Title and Meta Description. It should be concise, under 60 characters, and incorporate the main keyword.
    • Good:#1 Plumber in New York, NY | John’s Plumbing”
    • Avoid: “Welcome - John’s Plumbing” or “Plumber, Plumber Near Me, Plumber in NY”
  • Image Alt Tags: Describe the image, incorporating keywords naturally.
    • Good: “Boy sitting by an Arizona lake at sunset”
    • Avoid: “My Company + My Keyword + My City”
  • Page Structure & Headings: Prioritize correctly to help search engines understand content hierarchy.
    • H1: Only once for the page title. Incorporate keyword.
    • H2: Section titles like “Our Services.”
    • H3: Useful for FAQs or sub-sections.
    • H4-H6: Lesser importance but can be used for nested headings.
  • Interlinking: Link between your site’s pages. It aids Google in understanding page relevance.
  • Page Speed: Fast-loading images and a reliable server are essential for user experience. Even if not directly, poor UX can impact SEO negatively.
  • Sitemap: Keep an updated sitemap.xml and ensure it’s submitted to Google Search Console.
  • Robots.txt: Direct search engines on what to look at. Consider the following structure:
User-agent: Googlebot

# Allow essential files for rendering
Allow: .js
Allow: .css

# Link to sitemap
Sitemap: https://mysite.com/sitemap.xml

4. Local SEO

For businesses with physical locations or those targeting local clientele:

  • Create or claim your Google My Business listing.
  • Ensure name, address, and phone number (NAP) consistency across all online platforms.
  • Put your address + phone # in the footer of your website and on your contact page.

5. Measure

  • Regularly review performance through tools like Google Analytics, Google Search Console, and other SEO-specific tools.
    • Track organic traffic, bounce rate, conversion rate, and keyword rankings.
    • Adjust strategy based on performance data.

Final Thoughts

SEO might seem overwhelming due to the barrage of ever-evolving information, but remember the core principle: Offer relevant information and you’ll be in Google’s good books.

If you’d like more specific guides, suggest topics below. I hope to make this an ongoing series!

Share your questions or advice below!

6 Likes

This is a great start. The real trick, if RM is up to the task, is to implement as much of this as possible into automation and a logical, simple to implement workflow. It takes thought. Some trickery with adding server files. But, it is my opinion, an opportunity to really stand apart from the crowd.

2 Likes

On the Technicalities, would the code be written like this to cover all essentials?

Allow essential files for rendering

user-agent: *
Allow: /.js
Allow: /.css
Allow: /images/
Allow: /resources/
Disallow: /rw_common/

If you have a Page Header (H1) and then let’s say 3 distinct sections (each H2) that’s pretty straightforward.

But what if, below your Page Header, you have an important Strap-Line (or Slogan in Rapidweaver language)? Should this be an H2? After all, many themes make the RW Slogan an H2. If so, should your 3 sections below the Header and Strap-Line all be H3 or should they also be H2?

The rule of thumb is H1 is the Main topic of the page. H@ is the relevant supporting sub-topics of the page. If you need H3 then those would be sub-topics of the H2. There should not be any other tags that are used for design or non-related information. Only H tags related to the main topic of the whole page.

Many themes get this wrong and use H tags for design. This is not correct. They should be some sort of div, or section.

A true header for contextual outline

<h1>
  <h2>
    <h3>
    <h3>
  <h2>
    <h3>
   < h3>
  <h2>
    <h3>
    <h3>

A header could have a logo.

<header>
  <div rel="logo"></div>
  <div rel="slogan"></div>
</header>
<main>
  <h1>
    <h2>
      <h3>
      <h3>
    <h2>
      <h3>
      <h3>
    <h2>
      <h3>
      <h3>
</main>

It is admissible to have more than on H1, H2, or H3 tag on a page, but each occurrence dilutes the impact. From the reader’s point of view, what are you trying to communicate? That is the goal is using proper markup. Imagine reading the page with no font styles, colors or sizes. The only way you can determine what is important, is how it’s tagged. So tag logically.

To clarify - There should be 1 <h1> per page. <h2> are used for section headings. <h3> are used for headings INSIDE sections, but not within the <h2> syntax as you listed it. Ex:

<h1>Page Title</h1>
   <h2>Section Title</h2>
       <h3> My Service #1</h3>
       <h3> My Service #2 </h3>
   <h2> New Section Title</h2>

The way you listed it would make ALL content inside the <h2> span treated as an h2, which would nuke your page structure.

1 Like

To answer your question, the “slogan” should be h2.

Ex:

h1: About Us
h2: Meet Your Creative Team

The h2 is fine in the banner because it’s the title of that section.

Typically, you want some SEO benefit in the h1 and h2 but having the right page title in h1 is most important.

Could you clarify what you mean by automate? What parts?

I’ve ranked 100s of sites and nothing automated really competes with the manual stuff. Of course, good code / etc can be baked in, but automated Alt Tags, etc, rarely have much effect in my experience.

Should have said, create a smooth workflow so we don’t have to jump around multiple panels to get all the SEO checkboxes done. There are stacks that do this well with Classic. Maybe someone out there will make the add on for elements.

However, site maps and htaccess should be.

Ok - that’s what I have always done. But what about the content section headers that follow. H3 or H2? I feel logically they should H3 as they are of a different order than the ‘slogan’. but general advice is that page sections should be headed with H2.

I encourage you to read the following accessible page structure article and follow the links within the article. If you really want to get to the heart of structure, this is a great primer. Bottom line, use proper grammar and over deliver the information your website visitor is looking for.

1 Like

I’m familiar with all of this and agree. However, my question - which is really all about the ‘slogan’ or ‘strapline’ is still not addressed. It’s like a slogan should have it’s own tag but doesn’t.

1 Like

There is not a html element for logo or slogan. Also H tags should always used in order of depreciation. 1-2-3, etc. HTML 5.1 spec says no more than one h1 tag per page. So logo and slogan would not have any h tags unless they are the title and sub-title pertaining to the individual webpage. The logo and slogan cannot have an h tag if they break the depreciation, it must start with h1, then h2, then h3, etc.

Been a while - but here’s what I’m talking about in the Rapidweaver world: The standard header stack - along with some 3rd party header stacks - shows H2 as the ‘Page Subtitle’


But according to HTML standards I have looked at, H2 should be the first level Section, with H3 being the first level Sub-Section.

Seems to be very unclear, not just in Rapidweaver but generally.

Sometimes, best practices suggest that each article should stand on its own with its own H1, H2, H3 structure. Each article should have a clear and logical content hierarchy to help search engines understand the main topics and subtopics of the article. If the website name is closely related to the main targeted keyword you are trying to rank for, then using an H1 tag for the website name would be acceptable. However, it is usually better to reserve the H1 tag for the main title of the article to maintain clarity and SEO effectiveness.

If your website name is generic or off-topic, do NOT use any headline tag for the name; a simple “a” link is preferred so as not to dilute the headlines in the article. This ensures that each page has a clear and logical structure, making it easier for both users and search engines to navigate and understand the content.

Avoid using more than one H1 tag per page. It is best practice to use only one H1 tag per page to maintain a clear, single primary topic for the page, which is beneficial for both SEO and accessibility. I know there are multiple ideas out there on this, but I am just suggesting the best practice.

See the example below.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hope and Anticipation: Finding Goodness in Faith | Mark's Blog</title>
    <meta name="description" content="Explore the concept of hope and the confident anticipation that goodness is coming, through inspiring Bible stories and scripture on Mark's Blog.">
    <style>
        /* CSS goes here */
    </style>
</head>
<body>

<header role="banner">
    <a href="/" aria-label="Mark's Blog Home">Mark's Blog</a>
    <p>Your daily dose of inspiration and faith</p>
</header>

<nav role="navigation">
    <ul class="nav-links">
        <li><a href="#link1">Home</a></li>
        <li><a href="#link2">About Me</a></li>
        <li><a href="#link3">Contact</a></li>
    </ul>
</nav>

<main role="main" class="container">
    <article role="article">
        <h1>Hope and Anticipation: Finding Goodness in Faith</h1>
        <p><strong>Summary:</strong> This article explores the concept of hope and the confident anticipation that goodness is coming, through inspiring Bible stories and scripture.</p>
        <p>Main content goes here. This is where your article's content will be displayed.</p>
    </article>

    <aside role="complementary">
        <h2>Related Articles</h2>
        <ul class="nav-links">
            <li><a href="#related1">Related Article 1</a></li>
            <li><a href="#related2">Related Article 2</a></li>
            <li><a href="#related3">Related Article 3</a></li>
        </ul>
    </aside>
</main>

<footer role="contentinfo">
    <nav role="navigation">
        <ul class="footer-nav">
            <li><a href="#footerlink1">Privacy Policy</a></li>
            <li><a href="#footerlink2">Terms of Service</a></li>
            <li><a href="#footerlink3">FAQ</a></li>
        </ul>
    </nav>
    <div class="contact-form">
        <h2>Contact Us</h2>
        <form action="https://example.com/contact" method="POST">
            <label for="name">Name:</label>
            <input type="text" id="name" name="name" required>
            
            <label for="email">Email:</label>
            <input type="email" id="email" name="email" required>
            
            <label for="message">Message:</label>
            <textarea id="message" name="message" rows="4" required></textarea>
            
            <button type="submit">Send</button>
        </form>
    </div>
</footer>

</body>
</html>