rank math seo schema markup guide for the voxel theme

Rank Math SEO Schema Markup in Voxel WordPress Theme

This guide outlines how to implement Rank Math SEO schema markup within the Voxel WordPress Theme using the free version of Rank Math, enhancing search engine understanding and visibility of your content.

Step 1: Generate Schema Markup
Use an online schema generator to create your schema markup structure.

Step 2: Adjust Rank Math Settings
Disable the Rank Math Schema Type for your custom post type:

  • Navigate to wp-admin > Rank Math > Titles & Meta > Your Post Type
  • Set Schema Type to “None”

Step 3: Integrate Dynamic Tags
Replace static data in your schema markup with Voxel dynamic tags.

Step 4: Insert Schema Markup
Add the generated schema markup into a HTML element in your single post template, wrapped in a script tag. Ensure you press the Voxel Dynamic Tag Icon, then paste in your schema.

Step 5: Test Schema Markup
Verify your schema markup using Google’s Rich Results Test tool at Google Rich Results Test.

Example Local Business Schema using Dynamic HTML in the Voxel Theme

<script type="application/ld+json">
{
    "@context": "https://schema.org",
    "@type": "LocalBusiness",

    "name": "@post(title)",
    "slogan": "@post(slogan)",
    "description": "@post(excerpt)",

    "url": "@post(website)",
    "telephone": "@post(phone)",
    "email": "@post(email)",

    "sameAs": [
        "@post(permalink)",
        "@post(facebook-url)",
        "@post(twitter-url)",
        "@post(instagram-url)",
        "@post(linkedin-url)"
    ],

    "image": [
        "@post(_thumbnail_id.url)",
        @post(gallery.url).list(\,,,",")
    ],
    "logo": "@post(logo.url)",

    "location": {
        "@type": "Place",
        "address": "@post(location.address)",
        "hasMap": "https://www.google.com/maps/@@post(location.lat),@post(location.lng),12z"
    },
    "geo": {
        "@type": "GeoCoordinates",
        "latitude": "@post(location.lat)",
        "longitude": "@post(location.lng)"
    },
    "areaServed": {
        "@type": "GeoCircle",
        "geoRadius": 20000,
        "geoMidpoint": {
            "@type": "GeoCoordinates",
            "latitude": "@post(location.lat)",
            "longitude": "@post(location.lng)"
        }
    },

    "openingHoursSpecification": [
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Monday",
            "opens": "@post(work_hours.mon.hours.start).first()",
            "closes": "@post(work_hours.mon.hours.end).last()"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Tuesday",
            "opens": "@post(work_hours.tue.hours.start).first()",
            "closes": "@post(work_hours.tue.hours.end).last()"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Wednesday",
            "opens": "@post(work_hours.wed.hours.start).first()",
            "closes": "@post(work_hours.wed.hours.end).last()"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Thursday",
            "opens": "@post(work_hours.thu.hours.start).first()",
            "closes": "@post(work_hours.thu.hours.end).last()"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Friday",
            "opens": "@post(work_hours.fri.hours.start).first()",
            "closes": "@post(work_hours.fri.hours.end).last()"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Saturday",
            "opens": "@post(work_hours.sat.hours.start).first()",
            "closes": "@post(work_hours.sat.hours.end).last()"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Sunday",
            "opens": "@post(work_hours.sun.hours.start).first()",
            "closes": "@post(work_hours.sun.hours.end).last()"
        }
    ],

    @post(reviews.total).is_greater_than(1,>=).then(
        "aggregateRating": {
            "@type": "AggregateRating"\,
            "ratingValue": "@post(reviews.average)"\,
            "reviewCount": "@post(reviews.total)"
        }\,
    ).else()

    "priceRange": "@post(price-range.label)",
    "paymentAccepted": "Cash, Credit Card",
    "currenciesAccepted": "USD"
}
</script>

Example Event Schema using Dynamic HTML in the Voxel Theme

<script type="application/ld+json">
{
    "@context": "https://schema.org",
    "@type": "Event",
    "name": "@post(title)",
    "startDate": "@post(event_date.upcoming.start).date_format(c)",
    "endDate": "@post(event_date.upcoming.end).date_format(c)",
    "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
    "eventStatus": "https://schema.org/EventScheduled",

    "description": "@post(excerpt)",
    "image": ["@post(_thumbnail_id.url)",@post(gallery.url).list(\,,,",")],
	
    "organizer": {
      "@type": "Organization",
      "name": "@post(hosts-name)",
      "url": "@post(website)",
      "email": "@post(email)",
      "telephone": "@post(phone)"
    },
	
    "offers": {
      "@type": "Offer",
      "url": "@post(permalink)",
      "price": "@post(product.min_price)",
      "priceCurrency": "USD",
      "availability": "https://schema.org/LimitedAvailability"
    },
	
    "location": {
      "@type": "Place",
      "name": "@post(venue)",
      "address": "@post(location.address)",
      "hasMap": "https://www.google.com/maps/@@post(location.lat),@post(location.lng),12z"
    }
}
</script>

Example Restaurant Schema using Dynamic HTML in the Voxel Theme

<script type="application/ld+json">
{
    "@context": "https://schema.org",
    "@type": "Restaurant",

    "name": "@post(title)",
    "slogan": "@post(slogan)",
    "description": "@post(excerpt)",

    "url": "@post(website)",
    "telephone": "@post(phone)",
    "email": "@post(email)",

    "sameAs": [
        "@post(permalink)",
        "@post(facebook-url)",
        "@post(twitter-url)",
        "@post(instagram-url)",
        "@post(linkedin-url)"
    ],

    "image": [
        "@post(_thumbnail_id.url)",
        @post(gallery.url).list(\,,,",")
    ],
    "logo": "@post(logo.url)",

    "location": {
        "@type": "Place",
        "address": "@post(location.address)",
        "hasMap": "https://www.google.com/maps/@@post(location.lat),@post(location.lng),12z"
    },
    "geo": {
        "@type": "GeoCoordinates",
        "latitude": "@post(location.lat)",
        "longitude": "@post(location.lng)"
    },
    "areaServed": {
        "@type": "GeoCircle",
        "geoRadius": 20000,
        "geoMidpoint": {
            "@type": "GeoCoordinates",
            "latitude": "@post(location.lat)",
            "longitude": "@post(location.lng)"
        }
    },

    "openingHoursSpecification": [
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Monday",
            "opens": "@post(work_hours.mon.hours.start).first()",
            "closes": "@post(work_hours.mon.hours.end).last()"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Tuesday",
            "opens": "@post(work_hours.tue.hours.start).first()",
            "closes": "@post(work_hours.tue.hours.end).last()"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Wednesday",
            "opens": "@post(work_hours.wed.hours.start).first()",
            "closes": "@post(work_hours.wed.hours.end).last()"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Thursday",
            "opens": "@post(work_hours.thu.hours.start).first()",
            "closes": "@post(work_hours.thu.hours.end).last()"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Friday",
            "opens": "@post(work_hours.fri.hours.start).first()",
            "closes": "@post(work_hours.fri.hours.end).last()"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Saturday",
            "opens": "@post(work_hours.sat.hours.start).first()",
            "closes": "@post(work_hours.sat.hours.end).last()"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": "Sunday",
            "opens": "@post(work_hours.sun.hours.start).first()",
            "closes": "@post(work_hours.sun.hours.end).last()"
        }
    ],

    @post(reviews.total).is_greater_than(1,>=).then(
        "aggregateRating": {
            "@type": "AggregateRating"\,
            "ratingValue": "@post(reviews.average)"\,
            "reviewCount": "@post(reviews.total)"
        }\,
    ).else()

    "priceRange": "@post(price-range.label)",
    "paymentAccepted": "Cash, Credit Card",
    "currenciesAccepted": "USD",

    "hasMenu": "@post(menu-link)",
    "servesCuisine": [
        @post(cuisine.label).list(\,,,",")
    ],
    "acceptsReservations": "@post(booking-link)"
}
</script>

Unleash Dynamic Data with Voxel!

With Voxel’s design flexibility, the possibilities are endless. Get Voxel here!

More Articles

Displaying parent categories with their child categories grouped underneath in Voxel is difficult and not directly supported by default term feed options. To achieve this, you need to use a term loop workaround that allows child terms to be looped inside a parent term preview. The steps below show how to do this using native […]
Voxel Framework is a new WordPress plugin in development that brings Voxel’s features to Bricks Builder and Gutenberg. While Voxel can create custom post types, taxonomies, and custom fields — and supports powerful dynamic data, conditional logic, and visibility rules — its real value goes far beyond content structure. Details below are speculative based on […]