In this post, I propose 2 options to improve Steemit's SEO through more friendly URLs.
It's tempting to write an SEO friendly article, starting with "What is SEO?" but I won't patronise you with that. If you want to know what SEO is, follow this link - What is SEO? Please, click the link even if you don't care. In my opinion, it's the greatest website on the internet. You won't be disappointed. You'll be using this link daily to answer almost every question you're asked.
This is a Development Update, so let's talk about what I've been working on.
π General Update
I'll keep this brief - I want to talk about SEO. Other than the SEO work, I've been:
- Fixing Bugs raised on GitHub
- Introducing the Carousel on Mobile Devices
- Fixing the /tags page.
All interesting stuff which I'll go into more detail about another time.
π Steemit's SEO
I was tagged in this comment by @remlaps and it got me thinking about it again. I've thought for a while about how I can change Steemit's URLs to make them more SEO friendly, inserting keywords instead of the generic hive-xxxxxx that's used for communities.
The answer then dawned on me. When users buy votes, they simply share their username and permlink to their post. E.g. /@the-gorilla/steemit-quiz-2025-week-2.
So if I navigate to https://steemit.com/@the-gorilla/steemit-quiz-2025-week-2, the category is added to the URL.
The important thing is, all of these URLs load the same content:
https://steemit.com/hive-128129/@the-gorilla/steemit-quiz-2025-week-2
https://steemit.com/no-community/@the-gorilla/steemit-quiz-2025-week-2
https://steemit.com/steemit-quiz-2025/@the-gorilla/steemit-quiz-2025-week-2
https://steemit.com/write-any-old-crap-here/@the-gorilla/steemit-quiz-2025-week-2
Why is this important? Because some of these links hold greater SEO value for relevant keywords than others.
Which does Google index?
Google indexes whatever it can find. It finds it by crawling the site for links. So when it crawls /trending, it looks at saves every link that it can find. When it crawls /@the-gorilla, same again. But the URLs for these pages contain the meaningless /hive-xxxxxx in the URL, not a preferred SEO version.
It turns out, changing the /hive-xxxxxx to something more meaningful, is actually pretty easy.
π Steemit's SEO Options
These options would only change posts that are within a community.
Option 1
We need to include it - Do Nothing. Leave it as it is.
Option 2
We replace the /hive-xxxxxx with the Community Name.
For example;
becomes;
Option 3
We replace /hive-xxxxxx with the 1st tag that the user used to describe their content.
This is essentially the "pre-community" state of URLs. The author still chooses their tags and the one that goes first (i.e. is deemed the most important) becomes the URL.
For example;
becomes;
https://steemit.com/cricket/@sabbirakib/a-low-scoring-day-in-bpl-in-sylhet-or-the-world-of-sports-or
π° My Preference
Initially, I had a strong preference for Option 3, on the basis that a community name can change... in hindsight, so can the 1st tag which has brought me to what I believe was @remlaps preference - Option 2.
My rationale is that communities were created to share a common interest - World of Sports is for sports lovers so if the community shares great content here, then Steemit will rank better for the term "World of Sports" and should attract even more sports lovers.
Which makes meaningful community names important - another potentially long post in its own right.
π The Downside of Option 2
Not all communities use the ASCII character set that form a URL.
For example;
This community is called Ψ§Ψ±ΨͺΩΨ§Ψ‘ which doesn't have an internet friendly URL.
So in these cases, I propose that we fall back to Option 2 and use the 1st tag. Which is still an improvement on the existing situation.
Please let me know your thoughts or any questions related to this. I've already written the code for both options and in writing this post, I've realised that I need to reroute /@the-gorilla/steemit-quiz-2025-week-2 to work in the same way as Post Feeds.
As you guessed, I'm tentatively in favor of #2, but (there's always a "but") that creates the minor challenge that it creates an inconsistency for people who like to manipulate the URL directly. i.e. https://steemit.com/trending/hive-151113 is not the same as https://steemit.com/trending/steem-dev. So, best practice probably becomes "Include the community name as your first tag". Which means that in practice the two options may be almost equivalent. Still, I think the link's SEO value should be controlled and standardized by the community owner/admin/moderator, not the author.
In the longer term, I think that entirely replacing the hive-###### in the direct link to the community with the community name or a piece of community-specific metadata is probably still better. I don't think that can be done in condenser, alone, though(?).
Shouldn't this be "the downside of option 2" with a fallback to option 3?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I'm not sure. It's possible that the back-end could still store the hive-xxxxxx as the community identifier, but the front end could create a friendly URL that could then be "parsed" to call the correct data from the database.
It feels very messy though. Options 2 and 3 are much simpler.
It should, thanks for highlighting. I've updated the post.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Another complexity with using community names... I'm not sure, but I don't think that they're guaranteed to be unique. Which means that posts from two different communities could wind up being labeled with the same string... Maybe not a problem, I guess, since there's not really a tree structure - but it's counterintuitive.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
That's not a problem since that part of the URL doesn't impace what content gets loaded.
It would even make sense. If 2 communities are doing the same thing, it makes sense that the first hashtag is the same (which is essentially what we're discussing as an abstractoin).
Ideally, communities work together but we've seen with some Country based communities in particular, that there's a divide and they won't work together.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
If you want the cats let me know and I come back.
πβ₯οΈ
@ wakeupkitty
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I've always preferred dogs πΆ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hereby
πβ₯οΈ
Baldr
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Is he/she good with children?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I leave the cats behind. My name should be enough.
πβ₯οΈ
@ wakeupkitty
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I wonder if option 2 and 3 make any difference at all in indexing, perhaps it should be omitted completely.
I'm thinking of communityies like world of xpilar or deutsch unplugged. The tags are another matter, I use deutsch as the first tag out of old habit. We should make users aware that they should choose the first tag based on the content. Will that work?
Maybe option 4 would be to leave it out, I just mean url with username and permlink only. The main thing is to get rid of hive-xxx, that seems to me to be the most important thing.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Very hard to say - we've discussed a lot in the past about using appropriate tags and I think that even steemcurator has mentioned it. Unfortunately, most people still just use generic spam tags.
I don't think there's any penalty for having the hive-xxxxxx, we're just not benefitting by having something more meaningful. So removing it would probably have the equivalent effect to doing nothing (although I don't know this for sure) - and it'd be a mission to unravel Condenser's Routing.
I think the only way that the existing might be penalising us is that the URL should generally reflect the content on the page. So a URL that contains "/football" when the body content has no mention of football, would treat the page as "Tag Spamming" (the "official" term for this eludes me). For options 2 and 3, the community name already appears in the page ... and if bad tags are chosen, then option 3 could potentially have a detimental effect.
Thanks for sharing your thoughts. New thoughts tend to surface during these discussions.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Isn't it more logical to use the hashtags to specify the content for example:
#book #review #titlebook
Good luck with making clear what hashtags mean.
Next time it is cats again.
πβ₯οΈ
@ wakeupkitty
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
First, I think what you are proposing now is the most important improvement since I learned about Steemit.
Despite the shortcomings, I am inclined to option 3. There are many non-thematic communities, regional communities. If the community is called Venezuela and the post is about movies, this is not the best SEO approach. I understand that tags can be changed later by editing, but I support the third option anyway.
As far as I know, a lot of duplicate links has a negative impact on SEO. That is, if the same page has many different types of links. Once upon a time, these duplicates were "glued together" with the help of a redirect. However, this will lead to a large load on the server. Therefore, the only way out is a canonical link.
I know that you already know all this π
So, I'm leaning towards option 3. At the same time, the community will need to explain how important the choice of the first tag will be.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I've thought about the Canonical and it could be a massive pain in the arse because of the order that the page is contructed π
Even though all of those URLs work and it's possible to link to them, there'd need to be links to them which Google's reading and indexing. Which makes me feel that it's unlikely the same content would be indexed via multiple URLs. But it's possible. So I should try to overcome my fear and figure out the solution!
Incidentally, I've just written this comment which might be of interest.
It's tricky. I think that if Steemit's users were better at choosing appropriate URLs, option 3 would probably have a stronger proposition.
Let's have a look at 10 random posts from my interface that are in communities and see what tags they use:
Probably better than I expected but not many that seem particularly good (number 2, 8 and maybe 4).
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
πβ₯οΈ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This post has been featured in the latest edition of Steem News...
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit