Want to automate social selling on LinkedIn?

Check out our LinkedIn content automation and employee advocacy manager

B2B and content marketing strategies like this in your inbox twice a month
By clicking Subscribe, you agree with our Terms.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
SEO
7
min read
March 6, 2024

How to do Programmatic SEO in HubSpot

Keelyn Hart
Content Writer at Letterdrop

TL;DR:

  • HubSpot allows for creating programmatic pages with code, but it can be challenging for non-technical users
  • Create separate CMS collections for each component of your programmatic pages
  • Add custom fields for data variables and link collections with multi-reference fields
  • Generate thousands of programmatic pages using Webflow's API
  • Consider using Letterdrop for a codeless integration for Webflow that pairs proprietary data with AI for programmatic SEO

As well as being a powerful CRM, HubSpot allows you to create templates and dynamic landing pages for programmatic SEO.

Unfortunately, this can prove a little tedious and still requires a lot of lift on your part. It can also be complicated for non-technical folks as you need to use code.

Luckily, there is a tool out there that integrates directly with HubSpot and has a programmatic feature to help you generate thousands of pages — the right way — without code.

Want the complete guide to programmatic SEO?

Learn everything about programmatic SEO and how to set it up with our guide

How to Create Your Programmatic Pages In HubSpot

1. First, Collect and Store Your Programmatic Data

There are two ways you can source data for your pages:

  1. Scrape publicly available datasets yourself or with web scrapers. This includes Data.gov and r/datasets. You can use no-code scrapers like Octoparse or TexAu to do this, although they do come with their own challenges and risks
  2. Use proprietary data. This makes your pages truly unique. Source information from customers, crowdsourcing, your team, and subject matter experts

Once you have your data, it's time to create a database.

The easiest database to use for your HubSpot pages would be a spreadsheet.

  • Every row should correspond to one new programmatic page
  • Every column should correspond with a type of data that you would want to insert dynamically on your template pages

Here's an example of a programmatic SEO page database in Google Sheets:

An example programmatic SEO spreadsheet from Practical Programmatic
An example programmatic SEO spreadsheet. | Source: PracticalProgrammatic


2. Prepare Your CRM Object Data

Each dynamic page will pull its metadata from the properties of the individual records of your selected CRM object. Copy-paste this data over from your spreadsheet.

Ensure your CRM object contains necessary data such as page slug, title, meta description, and featured image.

The dynamic page slug must be a new property configured with "hasUniqueValue": true. For custom objects, update the object schema to create a new property. For standard objects, use the properties API to create a new property.

Preparing custom object data | HubSpot Developer Docs
Preparing custom object data | HubSpot Developer Docs


3. Create a Custom Module for Detail Display

Develop a custom module to showcase individual record details. Use dynamic_page_crm_object to access and display data for the current dynamic page's object instance.

In the design manager, create a new custom module. 

Tip: naming the module something like [object type] - detail can make it clear what this module does. For example, Car - detail.

In the module.html field, add the following code (replace the example use of car with your use case):

{% if dynamic_page_crm_object and !module.car %}{# detail page and content creator has not selected an object#}
 
   {% set car = dynamic_page_crm_object %} 
   {# easy variable to access the CRM objects properties from #}
 
   {# To see all of the properties your object during development, print it to the page with the |pprint filter #}   
   <h1>{{car.year}} {{car.make}} {{model}} </h1>
    <div class="car">
       <div class="carImage">
           {% if car.image %}
           <img src="{{car.image}}" alt="{{car.year}} {{car.make}} {{car.model}}">
           {% else %}
           <img src="https://f.hubspotusercontent20.net/hubfs/9307273/Imported%20images/plchldr255.png" alt="Picture coming soon">
           {% endif %}
       </div>
       <div class="carDetails">
           <div class="carPrice">
               Price: {{ car.price|format_currency("en-US") }}
           </div>
           <div class="carBody">
               Body Type: {{ car.body_style.name}}
           </div>
           <div class="carDescription">
               {{ car.description }}
           </div>
           <div class="carDistance">
               Distance from Cambridge: <span class="dealer_location"> {{ car.location }}</span> Miles
           </div>
           <div class="carListingDate">
               Time since listing: <span class="listing_date">{{ car.date_received }}</span>
           </div>
       </div>
   </div>
 
{% else %}{# The page is not a dynamic page or the user selects a specific object, we can get the data from a CRM object field if there is data. #}
 
  {% set car = module.car.properties %}
  {# easy variable to access the CRM objects properties from #}
  {# To see all of the properties your object during development, print it to the page with the |pprint filter #}   
 
  <section aria-label="featured car">
      <div class="carImage">
         {% if car.image %}
         <img src="{{car.image}}" alt="{{car.year}} {{car.make}} {{car.model}}">
         {% else %}
         <img src="https://f.hubspotusercontent20.net/hubfs/9307273/Imported%20images/plchldr255.png" alt="Picture coming soon">
         {% endif %}
        <h3 class="car-name">{{car.year}} {{car.make}} {{model}} </h3>
        <div class="price">
          {{car.price|format_currency("en-US")}}
        </div>
      </div>
  </section>
{% endif %}



4. Create Your Programmatic Pages

With the modules created, you can now add them to a page, then select the object as the data source.

  1. Create a new page, selecting a page template
  2. In the page editor, click the Settings tab
  3. Under Page URL, click the pencil icon to edit the page's URL. Set the URL to where you want your listing page to appear. In our car example our listing page will be at: /cars
  4. Click Advanced options, then scroll to the Dynamic pages section.
  5. Under Dynamic Pages, click the Data source dropdown menu, then select your object. Then, click the Dynamic page slug dropdown menu and select the property to use as the page slug. Only single-line text properties set to  "hasUniqueValue":true will be available for selection. In our example, the page URL will use the VIN property, which will generate detail pages with the URL slug of: /cars/[VIN value]
  6. Under Metadata, continue selecting the properties that will populate the page’s metadata. In our example, we’re setting the featured image to a property that contains an image URL for a picture of each car.
  7. After setting up your metadata, at the top of the page, click the Content tab to return to the editor.
  8. In the left sidebar, in the Add tab, search for your detail modules, then drag them into the page editor.

Dynamic page setup in HubSpot
Dynamic page setup in HubSpot


5. Publish Your Programmatic Pages

To publish your pages, you will have to do so individually in HubSpot or alternatively opt for a third-party programmatic tool that can connect to HubSpot.



The Challenges of Programmatic SEO in HubSpot

As mentioned at the very beginning of this guide, generating your programmatic pages using HubSpot poses some challenges.

  • Creating dynamic pages in HubSpot is complicated and you may need to hire a developer to help you
  • You have to manually copy over data and publish pages if you don't have a third-party tool dedicated to programmatic SEO, which takes up time
  • Without generative AI, you'll likely get thin content based only on one template and basic variables. This could alert Google to possible spam
  • HubSpot doesn't have generative AI to help you make your pages more unique, which means you will have to copy-paste descriptions over from ChatGPT for every programmatic page — this will take hours

There are plenty of programmatic SEO tools out there that you can outsource to help you. However, most of them rely on AI-generated writing on its own to generate your pages — this will get you nowhere with your users, and Google can flag these pages as spam.

Just look at what happened to Causal, who used byword.ai to generate primarily AI-written pages.


A byword.ai client was heavily penalized for spammy AI-generated pages
A byword.ai client was heavily penalized for spammy AI-generated pages


If you want to create genuinely helpful pages, you have to pair AI and templates with proprietary data. Placeholders and keywords alone will only lead to thin and spammy content.

No-Code HubSpot Integration that Pairs Proprietary Data with AI for Programmatic SEO

Letterdrop, founded in 2021 by ex-Googlers, acts as a headless CMS and integrates seamlessly with Webflow. It's completely codeless.

Among its suite of smart SEO tooling that lets you optimize for the changing search landscape, Letterdrop offers a programmatic SEO tool that automatically identifies opportunities for programmatic pages on your site, pulling this data from sales calls, Google Search Console, and from top pages on the SERP.

It can then auto-generate these pages for you, pairing proprietary data with AI-generated content to create truly unique and helpful pages.

This is a feature completely unique to Letterdrop.

Letterdrop uses sales calls, GSC, and more to auto-generate unique programmatic pages
Letterdrop uses sales calls, GSC, and more to auto-generate unique programmatic pages



Put HubSpot Programmatic SEO on Autopilot

You don't want to end up generating thin, placeholder-type programmatic pages that are of no use to your potential buyers.

You need to pair proprietary data with AI in a way that produces pages that can drive business for you at scale.

Let Letterdrop take care of programmatic SEO for your Webflow site from start to finish.

Programmatic pages for Webflow, the right way

Let Letterdrop pair proprietary data with AI to generate your programmatic pages, today

Subscribe to newsletter

No-BS growth strategies and content marketing tactics in your inbox twice a month.

By clicking Subscribe, you agree with our Terms.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.