can I Google it?
SEO and the other things search engines and social media expect to see.
I built this site mostly for myself. A place to write rambles and share what I’m up to and what I’m thinking about. I never bothered to check how it actually looks to a search engine or a link preview, so I spent some time learning about SEO and fixing it (at least a little).
what was missing
Sharing a link in Slack or iMessage gave you nothing: no image, no title, just a bare URL. That’s Open Graph (OG) tags, and I only had the bare minimum in place. There was also no canonical URL, no X (fka. Twitter card), no favicon setup beyond a basic SVG, and no distinction between the homepage and a blog post.
what I changed
- Canonical URLs and proper
og:url/og:image/twitter:cardtags - A default OG image for general pages and a separate one for rambles, so a shared blog post looks different from a shared homepage link
- JSON-LD that actually matches the page:
ProfilePagefor the homepage,BlogPostingfor individual rambles, with headline, description, publish date, and author baked in - A real favicon set (apple touch icon, 192/512 icons, web manifest) instead of just the SVG
- I made sure the
sitemap.xmlandrobots.txtwere properly configured, made sure they were consistently point at the right (canonical) domain, and submitted the site to Google Search Console.
learning as I went
I hadn’t done much with SEO before this, so a good amount of time was spent just learning about the different interacting pieces. Google Search Console itself was the best teacher, although slow to actually re-index and see the changes. Its coverage reports and URL inspection tool told me exactly which pages weren’t indexed and why. Lighthouse and PageSpeed Insights caught a handful of things I wouldn’t have caught otherwise. And Google’s Rich Results Test was what actually confirmed the JSON-LD I wrote was valid and would render the way I expected, instead of just trusting that the schema.org shape was right.
rethinking where things live
Doing this made me think differently about how I should host future side projects. Right now SEO authority is concentrated on this domain, but I had created separate domains and subdomains for my other projects. Every new domain starts from zero with search engines, no matter how good the SEO on it is. So if a future side project lived under jtapostol.com instead of its own domain, it would inherit some of that authority instead of needing to build its own from scratch.
That said, I don’t want this to start dictating how I build things. Not everything needs to be consolidated and indexed, and I don’t want to sacrifice the independence of a project for the sake of SEO. I’m notorious for building and rebuilding things from scratch, and I don’t want to feel like I can’t do that because of SEO. There’s a few approaches for this, so I’ll take some time to restructure since the core pieces for this site are now in place.
our wedding site got the same treatment
The wedding planner site (now with a full site builder and public facing pages) also got the same upgrades. It was even more interesting because I built the planner to be multi-tenant, and added our own custom domain on top. That meant I had to make sure the canonical URLs and OG tags would be correct for each tenant’s context. It was a good exercise learning to make sure the SEO work was flexible enough to handle different contexts.
And now the site is looking really good and will (hopefully) come up when our friends and family go looking for it.
takeaway
SEO work is deceptively invisible. Nothing about it changes what the site actually looks like, and most likely none of it will make my running log go viral.
It seemed like a small thing, but it’s actually a really important part of making a site discoverable and user-friendly. I don’t want to get too caught up in it, but I did want to make sure I learn the basics so when I start on a new project I know what to do. So when someone does stumble upon one of my sites, it looks like a “real” site, not just a personal project.