Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add seo guide #1059

Open
wants to merge 52 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
8f17680
docs: add seo guide
CBID2 Feb 9, 2024
995f474
feat: finish section on S
CBID2 Feb 9, 2024
a59d5e2
feat: add frontmatter
CBID2 Feb 9, 2024
30b0dbd
fix: omit heading 1
CBID2 Feb 9, 2024
29c82a2
Merge branch 'master' into seo-guide
quetzalliwrites Feb 13, 2024
5b9d282
feat: made improvements in the sections about SEO and headings
CBID2 Feb 16, 2024
873c3d7
feat: revise sections about URL and alt text
CBID2 Feb 16, 2024
ea636c0
feat: add examples of SEO-friendly URLs
CBID2 Feb 16, 2024
02c1621
feat: add section for other ways to make Asyncapi's documentation SEO…
CBID2 Feb 16, 2024
b038d16
Merge branch 'master' into seo-guide
CBID2 Feb 16, 2024
4dd2cbe
Merge branch 'master' into seo-guide
quetzalliwrites Feb 21, 2024
0ab1ee6
fix: remove addtional suggestions section
CBID2 Feb 22, 2024
a290e30
fix: omit bullet point
CBID2 Feb 22, 2024
1043e2d
fix: revise typos
CBID2 Feb 22, 2024
c5c2cb3
feat: created section for Anchor text
CBID2 Feb 22, 2024
e36abe0
feat: add explanation on what makes URL examples SEO-friendly
CBID2 Feb 29, 2024
dc7e656
feat add tips on making SEO-friendly anchor texts and a section for e…
CBID2 Feb 29, 2024
97ddcac
Merge branch 'master' into seo-guide
CBID2 Feb 29, 2024
f69a121
feat: add examples of SEO-friendly anchor texts
CBID2 Mar 3, 2024
cd32a5d
Merge branch 'master' into seo-guide
CBID2 Mar 3, 2024
91a9ba2
fix: revise meta description
CBID2 Mar 3, 2024
4d6a15f
feat: add explanation about what makes the example anchor text SEO-fr…
CBID2 Mar 3, 2024
ccbd863
fix: revise Markdown errors
CBID2 Mar 3, 2024
67082d4
Merge branch 'master' into seo-guide
CBID2 Mar 11, 2024
3810936
Merge branch 'master' into seo-guide
CBID2 Mar 13, 2024
a3d1deb
feat: add some comments
CBID2 Mar 13, 2024
1dc4c41
feat: finished adding more detail about headings and start another se…
CBID2 Mar 31, 2024
ae9d05d
feat: added new sections
CBID2 Mar 31, 2024
27225f7
fix: omit comment and revise markdown formatting
CBID2 Mar 31, 2024
100f76f
fix: revise headings
CBID2 Apr 1, 2024
6385f00
feat: finished section on meta descriptions
CBID2 Apr 1, 2024
4a75db2
Merge branch 'master' into seo-guide
CBID2 Apr 1, 2024
00944f1
feat: revise structure
CBID2 Apr 1, 2024
129986f
fix: remove period
CBID2 Apr 1, 2024
0f21cb8
docs: finished adding information about mobile and SEO-friendly techn…
CBID2 Apr 3, 2024
93580b4
docs: add Additional resources section
CBID2 Apr 3, 2024
8629680
docs: fix formatting issues
CBID2 Apr 3, 2024
c9c1068
Merge branch 'master' into seo-guide
CBID2 Apr 18, 2024
518fb48
docs: add section on image optimization
CBID2 Apr 18, 2024
3f67568
Merge branch 'master' into seo-guide
CBID2 May 26, 2024
21c7e1c
docs: made edits
CBID2 May 26, 2024
f551555
docs: fix explanation
CBID2 Jun 2, 2024
11a7898
Merge branch 'master' into seo-guide
CBID2 Jun 2, 2024
1e90fb7
Merge branch 'master' into seo-guide
CBID2 Jun 4, 2024
f3dc224
docs: revise description
CBID2 Jun 5, 2024
7bc89d6
Merge branch 'master' into seo-guide
CBID2 Jun 16, 2024
7c77e38
docs: change sentence
CBID2 Jul 1, 2024
c29c022
Merge branch 'master' into seo-guide
CBID2 Jul 1, 2024
8fde226
fix: revise errors
CBID2 Jul 1, 2024
8b21d9c
Merge branch 'master' into seo-guide
CBID2 Jul 14, 2024
18cb74d
Merge branch 'master' into seo-guide
CBID2 Jul 16, 2024
8d26291
Merge branch 'master' into seo-guide
CBID2 Oct 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 148 additions & 0 deletions docs/styleguide/seo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
---
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📣 Feedback for Draft 1

What is SEO?

The definition is accurate but could be slightly rephrased. For example, "SEO (Search Engine Optimization) refers to the methods and strategies used to enhance the visibility of a website's content in search engine results."

Why is it important in our Documentation?

Could you add a sentence about the potential for increased contributions and community growth through effective SEO?

Headings

  • The phrase "chronological order" is confusing because we're not discussing time. It's clearer to say, "hierarchical order".
  • Include an example of headings.

Alt Text

  • The phrase "avoid writing add every single detail" has a typo. It could be corrected to "avoid writing down every single detail."
  • Include an example of good alt text.

URLs

  • The guidance is generally good but simplifying the explanation could make it more accessible. For instance, "Use hyphens (-) instead of underscores (_) to separate words in URLs, as search engines treat hyphens as space."
  • Add examples of well-structured URLs from our different content buckets such as: asyncapi.com/docs/concepts/server

Additional Suggestions

  • Meta Descriptions: Our current docs and blog posts all use meta descriptions and titles. These summaries appear under the title in search results and can significantly impact click-through rates.
  • Mobile-Friendliness: Mention the importance of ensuring that documentation is mobile-friendly, as this is a factor in search engine rankings.
  • Internal Linking: Encourage the use of internal linking to other parts of the documentation or the AsyncAPI website to boost SEO and user navigation.
  • Content Quality: Emphasize the importance of high-quality, original content. Search engines favor content that provides value to users.
  • Anchor Text:
    • Be descriptive and relevant.
    • Avoid generic phrases like "click here" or "this page". (Instead, use meaningful phrases that give users and search engines an idea of what to expect on the linked page.)
    • Vary your anchor text. While it's important to be descriptive, using the exact same anchor text for every link to a particular page can appear spammy to search engines. Try to vary the phrasing while still being clear about the page content.

title: SEO
description: This guide gives advice on how to implement SEO when creating tutorials and other forms of content for Asyncapi.
---

## What is SEO?

SEO (Search Engine Optimization) refers to the methods and strategies used to enhance the visibility of a website's content in search engine results.

## Why is SEO important in technical documentation?

Implementing SEO practices would make it easier for users and others to find them, resulting in more contributions and people to the community.

## SEO best practices

### What are headings?

Headings are tags used to make sub titles distinctive from each other.

#### Strategies for making SEO-friendly headings

- **Put them in hierarchical order:** Since an `h1` tag tend to be titles, always start with this tag. From there, use `h2` and`h3` tags for the subsections and `h4` and `h5` tags for other sections in Asyncapi's tutorial or other piece of documentation.
- **Use relevant keywords:** Since sites like Google often use keywords to help people's online content appear on the web, adding these terms effectively is helpful in ensuring that the tutorials and other pieces of content created reach a wider audience. It is highly recommended to [implement keywords in the `h1` and`h2` elements because it is where most users start reading"(Stark Visibility, p.16)](https://starkvisibility.com/wp-content/uploads/2022/04/SEO-Copywriting-101-eBook.pdf)

### Examples of SEO-friendly headings from Asyncapi's documentation

```md
# Server
## What is Server?
## What is the purpose of servers?
### Client and Server
```

### What are URLS?

URLs are addresses to webpages and other forms of online content. In the context of SEO, they help make it easier for users to gain access content.

#### Strategies for making SEO-friendly URLs

- **Make them short:** It'll make the links easier for users to comprehend and find the needed tutorial on Asyncapi's website.
- **Use keywords**: Like alt text, effectively adding keywords in the URL would make it easier for Google to find them.
- **Avoid using special characters and spaces:** Use hyphens (-) instead of underscores (_) to separate words in URLs, as search engines treat hyphens as space.

Here are some examples of SEO-friendly URLs from Asyncapi's documentation:

- `https://www.asyncapi.com/docs/concepts/application`
- `https://www.asyncapi.com/docs/concepts/server`
- `https://www.asyncapi.com/docs/concepts/message`

In addition to being short, these examples clearly mentions the titles for Asyncapi's content buckets, no hyphens nor special characters and spaces.

### What is Anchor Text?

Anchor texts are the phrases that describe a webpage's URL. They give users an idea what to expect before actually reading the content.

#### Strategies for making SEO-friendly anchor texts

- **Implement SEO keywords:** Be descriptive yet mindful of the amount of keywords being used to avoid overwhelming the search engine.
- **Consider the audience's needs**: Think about what the user might be looking for in Asyncapi's documentation and make sure the anchor text reflects this.
- **Maintain the text**: Asyncapi is constantly evolving so it's crucial to update the anchor text to suit the documentation's updates.

### Examples of SEO-friendly anchor texts from Asyncapi's documentation

- [OpenAPI (aka Swagger)](https://github.com/OAI/OpenAPI-Specification)
- [Server Object](https://www.asyncapi.com/docs/reference/specification/latest#serverobject)
- ["The many meanings of Event-Driven Architecture"](https://www.youtube.com/watch?v=STKCRSUsyP0)

These links include relevant keywords such as "OpenAPI(aka Swagger)", "Server Object", and "the many meanings of Event-Driven Architecture", which accurately describes the content they are linked to.

### What is Internal Linking?

Internal linking is the process of enclosing links to certain sections of a blog post or tutorial in brackets and placing them next to the headings and title. This makes it easier for users to navigate through Asyncapi's content.

#### Strategies for making SEO-friendly internal links

- **Develop a internal link structure**: Consider deciding the types of internal links to use when writing a blog post or documentation for Asyncapi. Doing so would help increase the chances of the content appear in the search results. To learn more about the different styles of internal links, check out the [Types of Internal Links section in "Internal Links for SEO: An Actionable Guide"](https://ahrefs.com/blog/internal-links-for-seo/#types-of-internal-links).
- **Create unique anchor texts:** It's best to avoid using the same anchor text when linking pages so that users won't be confused as they read the content on Asyncapi's website.
- **Include keywords in your anchor text**: This will ensure that the search engine can view the webpage's content.

### Examples of SEO-friendly anchor texts from Asyncapi's website

- "In this case, in your AsyncAPI file, you describe the `server`, and therefore the [Server Object](https://www.asyncapi.com/docs/reference/specification/latest#serverObject) holds information about the actual server, including its physical location."
- "JSON Schema Draft 07 is 100% compatible with AsyncAPI schemas. You can also use other standards to describe payload schema, such as [Avro](https://github.com/asyncapi/avro-schema-parser#usage)."
- "Furthermore, the [Pub/sub](/docs/tutorials/getting-started/event-driven-architectures#publishersubscriber) is appealing for IoT use cases due to two key features: support for flexible coupling between publishers/subscribers and inherent support for point-to-multipoint transmission."

### What are meta descriptions?

Meta descriptions are typically ["snippets of HTML code that are placed in a web page's header"](https://www.techtarget.com/whatis/definition/meta-description-tag). They appear under the title in the search results on Google and can significantly impact click-through rates.

>[!NOTE]
> In the case of Asyncapi's documentation, meta descriptions are written in YAML.

#### Strategies for making SEO-friendly meta descriptions

- **Make them unique:** Meta descriptions that are identical to each other would make it difficult for the content to appear in the search results.
- **Be descriptive** Since this information does not appear in webpages, add enough detail to the content's meta descriptions. It is highly recommended "to keep these descriptions within a range of ["150-300 characters"](https://docs.readthedocs.io/en/stable/guides/technical-docs-seo-guide.html).
- **Be accurate**: Ensure that the meta description includes information that correlates to the blog post or tutorial's topic. Doing so helps its meta description appear in the search engine's results.

### Examples of SEO-friendly meta descriptions from Asyncapi's website

- `title: Kafka bindings
description: Learn how to configure Kafka bindings in your AsyncAPI document.`
- `title: "Validate AsyncAPI documents"
description: In this guide, you'll learn multiple ways to validate AsyncAPI documents.`
- `title: Generate code
description: In this tutorial, you'll learn how to generate code from your AsyncAPI document.`

In addition to having information that correlate to the content's topic, these meta descriptions are concise and contain keywords.

### Why mobile-friendliness important to technical documentation when making it SEO-friendly?

Whether it's on a tablet, smartphone, or computer, [people consume most online content on these devices](https://blog.google/products/marketingplatform/analytics/mobile-challenge-and-how-measure-it/). Also, making Asyncapi's content mobile-friendly would bring more users to the site as ["users are more likely to return to and have a high opinion of a product if it's website is mobile-friendly"](https://www.webfx.com/blog/web-design/user-experience-matters-marketing/). Lastly, mobile SEO-friendly technical documentation appears more in search results.

#### Strategies for making mobile and SEO-friendly content

Here are some ways to make blog posts and documentation for Asyncapi's website mobile and SEO-friendly.

- **Use smaller images and videos**: Large images and videos can cause the documentation on Asyncapi's website to appear at slower rates, which create an unpleasant user-experience.

- **Use mobile-friendly fonts**: Some fonts can be hard to read on mobile devices, so it's crucial to picks font styles and sizes that can be adaptable to their screen sizes. It highly recommended to use styles like ["Arial, Tahoma, and Verdana for headings. For text, it is best to use Times New Roman, Georgia, and Bookman"](https://clickhelp.com/clickhelp-technical-writing-blog/choosing-fonts-for-technical-documentation/). For sizes, it's best to use ["14-16 point font for headings and 12-point for body text"](https://clickhelp.com/clickhelp-technical-writing-blog/choosing-fonts-for-technical-documentation/).
- **Give each topic its own page and/or section**: Consider putting a link to the next page or implementing internal links. It'll help users the project's docs and blog post have an easier time navigating the site.

>[!TIP]
> Need quicker results? Consider using testing tools like [Lighthouse](https://developer.chrome.com/docs/lighthouse/overview/) to ensure that the proposed blog post, tutorial, or update to Aynscapi's documentation is mobile and SEO-friendly.

### Why is quality important when making technical documentation that is SEO-friendly?

Search engines tend to favor content that provides value for online users. Therefore, it's important to ensure that the content is high-quality.

#### Strategies for making high-quality and SEO-friendly content

When writing a post for Asyncapi's blog or contributing to its documentation, consider asking the following questions to ensure it is high-quality and SEO-friendly:

- Is the content interactive and engaging?
- Is the information presented accurate?
- Is the content too technical for its intended audience?

### Images

The way a technical documentation's images are presented influences how they show up in a search engine's rankings, so it's important to optimize them in the best way possible.

### Strategies for making images SEO-friendly

To make SEO-friendly images, it is recommended to the following methods:

- **Create descriptive alt text**: Ensure that it describes the image's context a purpose. Doing so makes it easier for search engines to understand why it is being used, [especially when the image fails to appear on screen](https://rb.gy/5axft9).
- **Use search-engine supported image formats**: [`JPEG`, `SVG`, and `PNG`](https://developers.google.com/search/docs/appearance/google-images#supported-image-formats) are the common formats that appear in Google's search rankings, so consider saving the images in these formats.
- **Be mindful of the images' file size**: [Large image file sizes can make cause the site to load slowly](https://developers.google.com/search/docs/appearance/google-images#good-quality-photos-optimize-for-speed) so reduce and compress them before adding them to the documentation or blog post.
Loading