Building a dynamic tagging system for real estate websites - unlocking our SEO secrets

As part of our commitment to ongoing SEO education here on the forums I want to share one of my more advanced techniques that I have developed specially for the “real estate SEO” here at Real Estate Webmasters .com

I’m also going to advance the idea so that we can explore how we might implement it on our new Carly Carey team site.

Ok so here is the concept:

We have 3 content types here at REW that we want to be able to dynamically link together:

Blogs, Forum posts, and CMS pages.

Now given that our blogs already had a tagging system, as did the software we use for our forums, we were already ahead a bit. The only part that didn’t have tagging was CMS pages. And so, what I created was a way to tie the CMS pages into both the blogs and forums.

Here’s how we did it. (see screen for visual example)

Basically what we did was create the ability to add a new type of specialized page block into the CMS page. In this case there are blog posts and forums.

I can then get quite specific with what I want to dynamically embed in those pages based on not only the tags I have created but in our case, we also created different theme designs. Finally as we iterated we determined we wanted to be able to control how many posts or blogs we showed as well as whether we wanted images to show on the page or not (sometimes an image is necessary on a forum for instance but doesn’t look good embedded on a page).

What we ended up with was a really cool way to dynamically link content together creating the SEO pillar concept.

Now in our case, we went even further and did quite a bit of custom design around the layouts of these themes AND as a bonus for SEO, if you name your tags right, they also double as keyword references on the page you are embedding on.

Here is an example blog embed on our SEO page.

And here is an example forum embed on that same page:

Pretty sick right?

Now all these pages are related and linked together building internal link authority dynamically and we’re improving keyword citation and all sorts of other goodness

And the results? It really helps for long tail SEO results

So how do we apply this to

Well, there is an easy way and a more complicated way.

I’m going to start with the easy way:

We already have a tagging system (it’s in the blogs)

Why not use this as the system for linking things together?

How do we do that? Well, on the CMS pages, let’s add tags to the right-hand side of any page so that while we’re creating/editing it, we can also select tags. Easy!

We need to improve the tags though if this is going to be the case, since we should be able to either search or create the tag right there from the blog post or the CMS page: This discourse forum software we use here at REW actually has a nice UI for it - here’s a screen (so let’s make this)

Basically, you can type in to search existing tags (refines as you type) or you can create a new one if it doesn’t exist). We don’t want it to look like this though, it should be in the REW style design, similar to how you search/select elements for smart lists in the CRM. @Phil can you mock this up? Goes in the sidebar or a CMS page.

Now that we’ve dynamically linked CMS pages and blog posts together, we’ve already won. Agreed?

But how can we make it even more awesome? What are we always trying to optimize for that struggles with unique content and internal link equity?


So… why not apply this to listings as well. Imagine every relevant listing was tagged to it’s relevant blog posts and it’s relevant CMS pages. How sick would that be?

@aporter get me Hongda! :smiley: Let’s build it! (On the new site)

Now how to build it?

I’ll have to think through it a bit more: But imagine in the backend somewhere there is a place called “tag engine” (put it under tools)

When you click on tag engine, you see all the tags that have been added.

What I would likely want to do is click on any tag, and be able to augment that tag with specific related listings attributes.

For example, I click to edit the tag “Nanaimo”

What I am presented with is the tag: And then below, I would want all options available in the snippet manager. When I select any specific options in that snippet, “any” condition met would associate that listing with that tag.

Here’s a simple example:

So now any listings with City = Naniamo are automatically “Tagged” with the tag Nanaimo which will then allow us to link it to any CMS pages also tagged with Nanaimo and any blog posts also tagged with Nanaimo. Make sense?

Now let’s make it more complex: Let’s say I wanted a tag called “Naniamo Waterfront Homes”

So for this tag, I only want it to show if all conditions are met: The conditions would be

City = Nanaimo
Property type = residential
Waterfront = Yes

Super simple - I just choose those 3 criteria and bingo!

One important thing here (similar to what we do at REW main site) is the “tag cloud” needs to show on the blog posts, cms pages and listings. Not only will it mean those specific keywords are referenced on the page, but it will build authority of the tag itself which will then also pass to related pages.

Shoot, now that I said that, I think we need to add a few more elements to the tag editor: Because it can now act as a kind of sitemap page.

Filename: tag-(insert your custom name)
Meta description:
CMS content (standard wysiwyg)


Folks will want to be all over this… especially the last part. :slight_smile: Being able to control listing page associations is a huge differentiator. It will allow Google to find solid and deep associations with topic clusters.

This type of contextual relationship between listings and content is so much more important now than ever.

For Blogs… how about also going the other direction… from Blogs to a set of Listings.

Obviously, we can insert a full IDX snippet into blogs, but I’m thinking of something with a smaller/sexier footprint & engaging/click-thru headline that will show the first few matching listings with a link to the rest.

Like… e-commerce product round-up blogs… an informational post with sets of matching products in select places. Funneling folks from informational blogs is where things are headed towards, IMO.

Some folks are trying to do this by sticking IDX on every blog… but they’re too large.

Yup! It’s reciprocal - CMS pages reference listings via snippets, details reference blogs, blogs reference CMS and listings etc.

I’ll show you what I’m thinking on Carly’s new site terms of related listings on listings blogs - thinking text links with a limit selector sorted by newest within that tags context

@Morgan love the idea. Are you planning to make this part of the backend updates?

All features I design custom for are candidates for future releases. Some may make it, some may not. Depends on how well they are received by customers in terms of feedback, and of course it depends on the performance of the feature after testing.

It generally takes about 3-6 months “after testing” to get a feature build into the product as there are already minimum 2 quarters worth of features in development in R & D on the roadmap at any given time.

Any customers who love these ideas and want to implement them sooner, can take them and run with them, but I recommend letting me code them first (absorbing all the iteration time, coding, QA etc) and then you can copy the feature for a fraction of the cost in terms of hours that it takes me to develop the feature.

Example you might be able to copy a 200 hour feature for 10-20 hours effectively saving 90-95% of the cost.

1 Like

I like the sound of this!

Hi Brad,
I’m your new Account Manager, let’s explore this further! I’ll be in touch.

1 Like

I had this idea years ago and it was around 80 hours so I passed on it, but would love this to be implemented!! This is a game-changer!


Exciting stuff! Is there any update on when this feature might be available?

It’s being tested currently on and we’ll be getting real-time feedback on this and several other features at our in-person meeting REW Summit - 2024 REW Summit if you’re interested in attending.