In total, I have spent less than 10 hours working on the project. I just dumped all the data on the generated pages. Of course, it was going to be a disaster from the start.
But see if you can learn something from it.
How the site is doing currently
Impressions and clicks have come down to zero, which you can see in the below screenshot of Google Search Console.
What I did (complete process)
Kindly note that I will not be going into the details of how I set up the data and WP All Import templates (maybe another post later).
I spent just an hour, or possibly even less than that, doing research for the site. I just casually looked at other similar sites and the research was done.
The plan was to create a site related to mathematics and numbers by using the techniques of programmatic SEO. Within an hour, I finalized topics like:
- Math table of numbers
- Pi to certain decimal places
- Numbers to Roman numerals
- KPH to MPH conversions
- Fractions of numbers, etc.
For most of these keywords, Google was already showing calculators (as you see in the above screenshot) and other types of rich results, but I selected the topics anyway.
2. Created the site in Hugo + Netlify
At first, I created the site using the Hugo static site generator and published 35,000 pages at once through Netlify. But as I tried publishing more pages, the build process started taking more than an hour, and eventually, it would fail.
If you want to learn more about my process of using SSGs for programmatic SEO, I have written another post that might help.
After a month, I decided to move to WordPress by using the WP All Import plugin. Thanks to Okii, who introduced me to the plugin.
3. Moved everything to WordPress
Moving to WordPress was straightforward:
- Transferred all the previously used CSV data to Google Sheets
- Used WP All Import for programmatically creating the pages
- Copied the previously used template (Hugo one)
- Connected the Google Sheets URL as a data source
The permalink structure was earlier
/posts/post-name/ but I kept it as
/post-name/ on WordPress. And used Cloudflare page rules for 301 redirecting old pages to the new ones.
The main reason for moving to WordPress was that the previous setup was not letting me add more than 35,000 pages. After moving to WordPress, I added 7,000 more pages, which was easy and smooth.
And before you ask, I published all the pages under “posts” on WordPress.
4. Hosted on DigitalOcean
To make sure the site loaded fast and passed the Core Web Vitals scores, I used OpenLiteSpeed WordPress on DigitalOcean. In fact, I host all my WordPress sites on DigitalOcean.
If you’d like, this DigitalOcean referral link will give you a $200 credit to your account.
5. Dealt with slow indexing
The indexing process was very slow, initially.
To deal with that, I added a “related posts” section in all the posts and created a system in Google Sheets and WP All Import to automatically create 3 related posts in each post.
And it did accelerate the indexing process. I added the internal links somewhere around August, and you can see the results in the below tweet.
Still, just know that Google takes time to index all the pages — maybe weeks and even months, depending on the domain’s link authority and content quality.
6. The complete stack
Here’s the complete pSEO stack that’s currently being used on the site:
- Google Sheets — for data
- WordPress — the CMS
- Theme: Bright Mode
- Akismet Anti-Spam — for managing spam comments and form entries
- LiteSpeed Cache — the cache plugin
- Yoast SEO — the SEO plugin
- WP All Import Pro — for bulk page creation
- WP All Import – Yoast WordPress SEO Add-ON — for SEO settings for bulk created pages
- WPCode — for adding GA tracking link and for some custom CSS
- DigitalOcean — for hosting the site
- Google Analytics — for the analytics
- Google Search Console — for identifying indexing errors and checking progress
What you should do: Best practices
Now, if you are planning to create a programmatic SEO site or have already created one, here are some of the best practices that you can follow:
1. Always match the search intent
The longer posts are not always better. As per the intent, a post can only be 300 words long and still perform well in the SERP.
For example, if you look at the Goodreads single quote pages, there’s only 1 quote on a page and the site is performing great. Why? Because that’s what users want when they are searching for a quote.
So, when creating the page templates for your pSEO site, make sure you are matching the searchers’ intent.
I believe internal links are almost as important as backlinks, if not more.
Take extra time and effort to set up a process to build internal links. The process will depend on the platform and stack you are using, but it’s totally possible to add internal links.
As I mentioned earlier in this post, after improving internal linking, the indexing process sped up on my site.
I did not create any backlinks, but I believe creating backlinks would have further accelerated the indexing process.
Apart from indexing, you already know the other general SEO benefits.
4. Have enough server resources
As there will be 1000s of pages on your website, make sure you have enough server resources so that everything runs smoothly.
Furthermore, if the server gets overloaded, it’ll stop responding to users’ and bots’ requests. And that ultimately results in delayed crawling (and indexing) or no crawling at all.
5. Do not just dump all the data on pages
Avoid doing what I did. I just dumped all the common math and number-related calculations on the pages, which were already available on 1000s of other websites. In fact, for most of the queries, Google itself showed rich results.
Instead, use your data to derive something meaningful and useful that users want. Just by researching your competitors and analyzing the SERP, you can find the gap that you can fill in with your programmatic content.
6. Spend enough time and effort on creating page templates
Page templates are critical for pSEO. Because it is what the users and search engines will see.
Your page template should be designed in a way that the generated pages match the searchers’ intent, and they all should be user-friendly too.
7. Add images/videos on all generated pages
It’s a complicated process to add different images on the generated pages, but if you can manage that somehow, the generated pages will be more user-friendly.
And search engines also love images and videos.
8. Categorize/segment all content from the start
If possible, properly categorize or segment your posts into different areas on the website. Having a clear permalink structure makes it easier for the users as well as the search engines to understand.
In my case, I dumped everything under “posts” on WordPress and the permalink structure was:
But if I start such a site once again, I would create “pages” and “subpages” on WordPress and the permalink structure would be:
I have covered and tried to answer all the queries, but if you still have something to ask, kindly feel free to let me know in the comments below. I will try my best to answer each of them.