I'll be experimenting for the immediate future with increasing the number of backlinks and general domain rating for this site. I don't know why I haven't thought about this before, but increasing the DR for my literal firstnamelastname.com domain seems like a great investment of time throughout the rest of my career.
I'll document progress below.
Date | DR | Backlinks |
|---|---|---|
Jan 17 2025 | 33 | 120 |
Nov 21 2024 | 22 | 232 |
Nov 04 2024 | 14 | 215 |
Oct 06 2024 | 14 | 73 |
Sep 22 2024 | 9 | 53 |
Jan 17, 2025
Interesting - my DR has gone up a bit, but my backlinks almost dropped in half! I didn't publish much during December, so this was a dormant period. I did upgrade my site to Astro 5, so I guess that nothing dropping is a good sign too.
Nov 21, 2024
My DR has climbed a bit, while the backlinks haven't changed much. I'm starting to see some value in writing about Astro, particularly since it's been linked on the Astro site, which itself is a DR 84 site.
The backlinks from October/November still haven't materialized, so I think it might have been a waste of time. Even if it didn't bump my DR, I expected them to show up in my backlinks panel in ahrefs, but that's not the case.
Nov 4, 2024
It's been about a month since I last updated. My DR is stil at 14, but my backlinks have grown to 215.
The project I mentioned last month is still proceeding. I haven't seen any of the backlinks show up in ahrefs, so I'm not sure it's even been a success. If it does work, even slowly, it will be incredibly valuable. It would be a bunch of backlinks from very high domain rating (think 75+) direct to my site. Hoping it pays off!
Over the last month, I ported my site to Astro. I've been writing a ton, and a few of the posts have been getting a decent amount of traffic. Now that I have full control over the source of the site, I suspect that I'll be able to more rapidly increase these numbers.
One avenue I've identified that might be interesting is blogging about open-source projects, and trying to get them included on the documentation sites for these projects. I submitted a PR for an Astro-related blog post, but it didn't quite fit the bill. Whether it's Astro, Zustand, or some other project, I think this may be an interesting way to get some high-quality backlinks.
Oct 6, 2024
DR 14 (!), backlinks 73. My DR is up 5 points, and there's 20 new backlinks.
I'm still building backlinks. I recently found a list of great free backlink sites (think sites you know that have free signups, where linking to your site would be valuable). I now have my virtual assistants going through and creating accounts on all of these sites, linking back to this one. We'll see if that pays off.
One interesting backlink profile is from Bearblog itself - the platform that hosts this blog. When I write on a regular basis, backlinks show up from bearblog.dev, on their recent page. This changes so frequently (lots of people publish on a regular basis) that I think it may be slightly thrashing my baby backlinks profile with a high quality link, then taking it away.
Probably my best backlink from this period: my author bio on egghead.io. I went back and updated my account information on their author profile service, and the backlink points here instead of an URL I own, based on a previous Twitter username.
Sep 22, 2024
DR 9, backlinks 53. Starting point. There's a ton of backlinks from past domains I've had (including my old Twitter handle) that I'm going to try and get to point here. Nowhere to go but up!

Indexing
Backlinks don't matter if your pages aren't indexed. When I checked Google Search Console, a lot of this site's content wasn't. Search Console gets there eventually, but you can notify Google directly with the Indexing API. Here's the core of how I did it in simpleindex, a Rails app that reads a sitemap and makes sure every page is indexed:
require 'google/apis/indexing_v3'
class IndexPageJob
include Sidekiq::Job
sidekiq_options concurrency: 1
def perform(id)
credentials = Google::Auth::ServiceAccountCredentials.make_creds(
json_key_io: File.open(
Rails.root.join("config/google-cloud.json")
),
scope: "https://www.googleapis.com/auth/indexing"
)
page = Page.find(id)
index = Google::Apis::IndexingV3::IndexingService.new
index.authorization = credentials
index.publish_url_notification(
Google::Apis::IndexingV3::UrlNotification.new(
type: "URL_UPDATED",
url: page.url
)
)
page.indexed = true
page.last_scanned = DateTime.now
page.save
end
endI later rebuilt it on Cloudflare Workflows as indexer. Then I learned Google is cracking down on tools that use the Indexing API this way, so I don't recommend either for production. It isn't worth the risk of your domain or URLs being penalized.
GitHub backlinks
Links from GitHub are nofollow, so they're weak backlinks, but they can still help. This GitHub Actions workflow turns this site's RSS feed into a README with a list of posts. See kristianfreeman/blog-posts for how it looks:
name: Update README with Blog Posts
on:
schedule:
# Run every hour
- cron: '0 * * * *'
workflow_dispatch:
push:
branches:
- main
paths:
- '.github/workflows/*' # Only run if workflow files change
jobs:
update-readme:
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install required packages
run: |
sudo apt-get update
sudo apt-get install -y curl libxml2-utils
- name: Fetch RSS feed
id: fetch_rss
run: |
# CHANGE THIS TO YOUR FEED URL
RSS_URL="https://YOURWEBSITE/feed"
# This xpath definition may need to be changed to fit your feed structure
curl -s "$RSS_URL" | xmllint --xpath '//item/title | //item/link' - | \
awk 'NR % 2 == 1 { title=$0; gsub(/<[^>]+>/, "", title); } NR % 2 == 0 { gsub(/<[^>]+>/, "", $0); print "- [" title "](" $0 ")" }' > posts.md
- name: Prepare Markdown content
id: prepare_markdown
run: |
if [ -f posts.md ] && [ -s posts.md ]; then
echo "# Latest Blog Posts" > new_content.md
cat posts.md >> new_content.md
else
echo "# Latest Blog Posts" > new_content.md
echo "No blog posts found." >> new_content.md
fi
- name: Update README.md
run: |
if [ -s new_content.md ]; then
rm README.md
mv new_content.md README.md
rm posts.md
fi
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "Update README with latest blog posts"
branch: main