Mostly a random collection of decisions I made when revamping this site. I’ll try to update this over time as I make new calls.
Post in markdown. This is mostly for comfort, it’s easier than writing HTML.
I use Hugo as a static site generator. I thought static site generators would be easy; I was wrong. Hugo uses Go and a bunch of libraries, I can’t install all of it on my company laptop (without disabling some security features, which otherwise seem like a good idea).
This is also mostly for comfort. It also helps speed, and gives me a little bit more control of the final HTML.
I use Firebase static hosting. Static hosting allows me to move hosters easier, though it’s not completely trivial since I use various HTTP response headers currently defined for Firebase hosting. Firebase hosting is free’ish - though paying for hosting is fine too.
Keep existing domain name.
I cache most content for up to a week. WebPageTest.Org complained when I had it set to a day, so it’s now a week. I doubt it changes much.
Yeah. Links. I know you like them.
Treat external links differently.
I add a symbol for external links, open them in a new tab (
target=_blank), and use
rel=noopeneron them. Using rel=noopener is a security measure. I don’t use
rel=noreferrersince I like referrers a bit. But not too much.
origin-when-cross-originas a referrer policy, as specified in the HTTP headers in the
Enable rel-nofollow links.
I don’t have plans for doing anything special with nofollow links, but it seems like it might be a useful thing to have. Also, a bunch of the posts here are about showing nofollow links, so hah. Here’s how it’s implemented in Hugo.
Lots of linked categories. I link to all categories from all pages in the sidebar. This is probably unnecessary, but I like it. Also, related posts linked in the footer based on categories, title, and date.
rel=prev. Where the CMS generates these, I add them to the
<head>. They’re not used for SEO, but I like old things.
rel=author. This is just for
Article structured data. I might as well figure this out. So it’s added.
Follow security best practices. You’ll see these in the HTTP headers or in the HTML.
- CORS header for font files
X-XSS-Protection: 1; mode=block
Content-Security-Policy:(mostly self other than JS for code highlighting on cdnjs.cloudflare.com)
Favicon: Who knew favicons were so weird? Instead of 7-10 files, I just made a SVG version.
Sitemaps / feeds: Include a normal sitemap file & an RSS feed. Do people still use RSS?
Minimal analytics / tracking. I rarely look at the data in the long term, so why track it. Also, no 3rd-party cookies, GDPR-interstitials, etc. I use Firebase Cloud Logging to track requests, and might aggregate that to charts, but it’s limited to what comes in on the HTTP request level.
No site-search. It’s a static site, so running my own search would be overkill. The search box goes to a Google site:-query.
Migrate older, even embarrassing content.
I’m old enough not to care about people’s opinions on that. It’s not terrible content, it’s not great. It is what it is. Some of these things were fun to figure out, might as well share them. It also includes some of my Google+ posts.
Less SEO / official-Google focus
It goes without saying (multiple times), but this site is a personal site and does not reflect the views of my employer. While there is a bunch of SEO content here, don’t assume it’s up to date, that it’s correct, or that it reflects Google’s views. Some SEO / website stuff is just fun, that’s why it’s here. Check the official Google SEO documentation if that’s what you want. Check the help forums if that’s what you want.
Comment moderation is a hassle. You have to either deal with authentication or delegate it to a 3rd party. You have to maintain dynamic content. People expect answers. Post on Twitter if you want to comment.
Link to code on Github
If I’m going to put code on here, I might as well host it somewhere where it can be updated easily. Snippets tend to be Github Gists, longer things are code.
More because writing in German brings extra mental overhead. Also, I can’t write in Chinese or Japanese, so those are out too.
Comments / questions
There's currently no commenting functionality here. If you'd like to comment, please use Twitter and @me there. Thanks!