Forem Creators and Builders 🌱

Is it possible to delete/hide tags?

Ildi on September 14, 2021

Sometimes when a user writes a post and adds tags to it, they might make the occasional mistake of misspelling a tag. For example: I recently wro...
Collapse
 
nickytonline profile image
Nick Taylor

I think for the moment, all you can do is alias it.

  1. Navigate to https://your_site/admin/content_manager/tags
  2. Navigate to https://community.vscodetips.com/admin/content_manager/tags/some_tag_id/edit
  3. Set the alias of the mispelt tag to the one with the correct spelling.

alias field for a tag

Collapse
 
ildi profile image
Ildi

Thank you @nickytonline I did not know that’s how the “Alias for” feature worked. I will use this workaround for now but I do think the tags system/page can use some improvement.

Another suggestion I have is regarding the URL structure for tags that have more than one word. Example: 1vibe.com/t/brunomars should instead be /t/bruno-mars. My understanding is that this would also be beneficial for SEO.

Collapse
 
nickytonline profile image
Nick Taylor

Yeah, for sure it's a workaround.

I definitely agree tag management can be improved. I think it makes sense for tags to allow for kebab case, e.g. bruno-mars. Maybe there was a technical reason we did not allow for this.

Thread Thread
 
ben profile image
Ben Halpern

Since tags can be user-generated, the concept of fully deleting them may or may not make sense in the grand scheme (we could implement that but it may not be as intuitively obvious for platform mechanics), but we could definitely change /tags to only show supported tags... Which I think would be the intended behavior anyway. Tags that are officially designated as supported by the creator are the important ones.

Thread Thread
 
ildi profile image
Ildi

I’m curious, on DEV have you ever encountered any users creating tags that could be considered offensive? What would be the best action to take in that scenario?

I do like the suggestion of having only “supported” tags show on the /tags page. This would def clean things up a bit.

Thread Thread
 
michaeltharrington profile image
Michael Tharrington

This is a great question!

We have previously detected offensive tags, but generally we've acted to remove the content under the tag without acting on the tag landing page itself. That would be my recommended move for now.

That said, I can understand wanting to be able to delete the tag landing page too just in case someone were to stumble upon it — it's unlikely to happen if the content posted under the tag is removed, but it is a possibility.

I also think from an admin standpoint it might be nice to block certain tags from being created.

Or maybe there could be a feature to silently hide a tag. I'm thinking hiding a tag would make it so that the tag page and all posts that are tagged with that tag would be de-indexed from search engines and left out of user feeds on the Forem. This might be a good spam mitigation technique too as I've noticed that some spammers come in and use the same tag for their spam over and over.

Thread Thread
 
ben profile image
Ben Halpern

Realistically we should at least 404 any tag with 0 published posts... Whether or not we technically delete it from the database.

Example: dev.to/t/sex <- No posts. Should probably render not found.

Thread Thread
 
ildi profile image
Ildi

These are all good suggestions @michaeltharrington

I think being able to silently hide a tag and also tell search engines not to index those pages would be a good solution but it sounds like it might just be easier to build an option for admins to delete any tags that were clearly created by mistake or maliciously. I think it goes back to whether or not this was more of a technical decision.

Thread Thread
 
ildi profile image
Ildi

Realistically we should at least 404 any tag with 0 published posts... Whether or not we technically delete it from the database.

I think this would be best. I’m certainly hoping that users do not behave badly, and I’m not seeing this problem occur yet but it’s good that we are discussing it.

Thread Thread
 
michaeltharrington profile image
Michael Tharrington

Indeed! This is a great one to bring up, Ildi.

And I like Ben's point that tags with 0 published posts should 404. That makes a lotta sense.

Thread Thread
 
ellativity profile image
Ella (she/her/elle)

I like this suggestion, too, as that's also the result you get from a tag that doesn't exist at all, so it does effectively delete/delist the tag.

I think in addition, it would be nice for tags with 0 posts to be undiscoverable except by admins using the tag manager, so even if there aren't a lot of posts on a Forem the 0 posts tags don't appear in Top Tags or similar lists.

Thread Thread
 
ben profile image
Ben Halpern

Merged the 404 for 0 posts/unsupported tags. Will be live in Forem Cloud shortly.

Return 404 if empty and unsupported tag #14864

What type of PR is this? (check all applicable)

  • [ ] Refactor
  • [x] Feature
  • [ ] Bug Fix
  • [ ] Optimization
  • [ ] Documentation Update

Description

Since tags get created whenever they are included in a post, the tag exists even with no published posts.

It has been determined that the expected behavior should be a 404 response. If the tag is supported than the expectation is that the admin wants it to show up, even with no posts. (Likely a no posts yet scenario.)

Related Tickets & Documents

Closes github.com/forem/rfcs/issues/282

Originally came out of this discussion: forem.dev/ildi/is-it-possible-to-d...

Added/updated tests?

  • [x] Yes
  • [ ] No, and this is why: please replace this line with details on why tests have not been included
  • [ ] I need help with writing tests

[Forem core team only] How will this change be communicated?

This should mostly just fill expected behavior.

Thread Thread
 
ildi profile image
Ildi

Thanks for the update Ben!

I also really liked that suggestion above to only show supported tags in the /tags page. Would be nice to be able to focus on the important tags but maybe also have a search feature to quickly navigate to any other tag you might be interested in.