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

Need to add Meta box for on-page SEO for every post and post types #830

Open
amitpatel0702 opened this issue Jul 21, 2022 · 18 comments
Open
Labels
[Component] Learn Plugin Website development issues related to the Learn plugin. [Component] Learn Theme Website development issues related to the Learn theme. [Type] Enhancement New feature request for the Learn website.

Comments

@amitpatel0702
Copy link

amitpatel0702 commented Jul 21, 2022

By any chance, if there is any possibility to add meta box for on-page SEO. We can think of a similar meta box that is created after activating SEO yoast plugin.

Let me say, current post body and templates are amazing, Just as a suggestion if we can add on page part like meta title, meta description and meta keywords, that would really help.

Am not 100% sure if we can setup plugins like yoast plugin or we development team doesn't prefer that, then we can create custom fields and map it with every post.

In order to achieve this change. We can start identifying metas for every post including alt or any on page suggestions and form a team to start fixing the same.

@bsanevans bsanevans added [Type] Enhancement New feature request for the Learn website. Awaiting Triage Issues awaiting triage. See Training Team handbook for how to triage issues. labels Jul 21, 2022
@jonathanbossenger
Copy link
Collaborator

@amitpatel0702 in order to do this, it would be ideal if we knew the following information:

  1. What fields (and field types) should be added for SEO?
  2. Where should this data be rendered?

We also need to consider who should manage this data, and we might want to get the marketing team's help.

@amitpatel0702
Copy link
Author

Hi @jonathanbossenger,

  1. We can add meta title, meta description and meta keywords part into the head part. We can also optimize content according to guidelines based on alt tags, heading tags, content distribution etc.
  2. This data should be rendered at client side (Browser end). We can think of what SEO yoast does this to embed those tags.

I would be happy to form the team and help to analyze each content and identify on page part and start adding the same.

@jonathanbossenger
Copy link
Collaborator

@amitpatel0702 that would be ideal.

I don't know the details of why, but I do know there are some "concerns" around installing third-party plugins on meta sites, of which learn.wordpress.org is part of. So we would probably have to develop this for learn.wordpress.org.

As you say, a good start would be to add the meta title, description, and keywords fields to the content types, and have them render in the tag.

@amitpatel0702
Copy link
Author

Hi @jonathanbossenger, let's connect next week to speak more on this and we can figure out a final solution for the same. I hope that makes sense.

@bsanevans
Copy link
Contributor

@amitpatel0702 @jonathanbossenger Are there any updates from your discussions?

@bsanevans bsanevans removed the Awaiting Triage Issues awaiting triage. See Training Team handbook for how to triage issues. label Nov 9, 2022
@bsanevans bsanevans added this to TODO in Website Development Nov 9, 2022
@amitpatel0702
Copy link
Author

Hi @bsanevans, I was not able to connect with @jonathanbossenger to speak on the same.

Let's keep this thread open and I will ensure to get it executed by next week.

@jonathanbossenger
Copy link
Collaborator

I'd like to point out that it might be better to include @adamwoodnz in this conversation, as my focus at the moment is on my courses, tutorials, and online workshops, not the Learn codebase, and @adamwoodnz is more likely to be able to implement platform changes.

@amitpatel0702
Copy link
Author

Thanks @jonathanbossenger, So shall we include @adamwoodnz in future discussions? And would you like to take part in those calls or discussions or we should connect with Adam for the same?

@jonathanbossenger
Copy link
Collaborator

You would have to ask him, all I'm saying is I, unfortunately, don't have time/scope to implement this feature. If there are any other training team contributors who are also developers, you might be able to reach out to them.

@adamwoodnz adamwoodnz added [Component] Learn Plugin Website development issues related to the Learn plugin. [Component] Learn Theme Website development issues related to the Learn theme. labels Nov 21, 2022
@adamwoodnz
Copy link
Contributor

Hi @amitpatel0702

I'd like to clarify this need before we get into implementation details. Could you please go into more detail about why we need to add these? Are there problems with the SEO of these pages that we're seeing in analytics or some other tooling? Are you implementing something new and require these fields for that?

@adamwoodnz adamwoodnz moved this from TODO to Issues in Website Development Nov 27, 2022
@amitpatel0702
Copy link
Author

Thanks @adamwoodnz to be involved in this discussion.

Yes I have few inputs regarding SEO optimizations and how we can improvise more than that.

Let me know your availability to discuss more on this and finalize the best solution.

@adamwoodnz
Copy link
Contributor

Let me know your availability to discuss more on this and finalize the best solution.

I'm available asynchronously on Github all the time!

I activated Yoast SEO locally and the data added to a Lesson Plan is

<!-- This site is optimized with the Yoast SEO plugin v19.10 - https://yoast.com/wordpress/plugins/seo/ -->
	<title>Add New Blocks to Your Site Using the Block Directory - Learn</title>
	<!-- Admin only notice: this page does not show a meta description because it does not have one, either write it for this page specifically or go into the [SEO - Search Appearance] menu and set up a template. -->
	<link rel="canonical" href="http://localhost:8888/lesson-plan/add-new-blocks-to-your-site-using-the-block-directory/" class="yoast-seo-meta-tag">
	<meta property="og:locale" content="en_US" class="yoast-seo-meta-tag">
	<meta property="og:type" content="article" class="yoast-seo-meta-tag">
	<meta property="og:title" content="Add New Blocks to Your Site Using the Block Directory - Learn" class="yoast-seo-meta-tag">
	<meta property="og:description" content="The Block Directory helps WordPress users discover, test and install new blocks for their website. The WordPress Block Directory searches the free WordPress plugin directory […]" class="yoast-seo-meta-tag">
	<meta property="og:url" content="http://localhost:8888/lesson-plan/add-new-blocks-to-your-site-using-the-block-directory/" class="yoast-seo-meta-tag">
	<meta property="og:site_name" content="Learn" class="yoast-seo-meta-tag">
	<meta property="article:modified_time" content="2022-11-28T20:34:49+00:00" class="yoast-seo-meta-tag">
	<meta property="og:image" content="https://learn.wordpress.org/files/2021/02/search-block-directory-1024x625.jpg" class="yoast-seo-meta-tag">
	<meta name="twitter:card" content="summary_large_image" class="yoast-seo-meta-tag">
	<meta name="twitter:label1" content="Est. reading time" class="yoast-seo-meta-tag">
	<meta name="twitter:data1" content="6 minutes" class="yoast-seo-meta-tag">
	<!-- / Yoast SEO plugin. -->
        <script type="application/ld+json" class="yoast-schema-graph">{
	    "@context": "https://schema.org",
	    "@graph": [
	        {
	            "@type": "WebPage",
	            "@id": "http://localhost:8888/lesson-plan/add-new-blocks-to-your-site-using-the-block-directory/",
	            "url": "http://localhost:8888/lesson-plan/add-new-blocks-to-your-site-using-the-block-directory/",
	            "name": "Add New Blocks to Your Site Using the Block Directory - Learn",
	            "isPartOf": {
	                "@id": "http://localhost:8888/#website"
	            },
	            "primaryImageOfPage": {
	                "@id": "http://localhost:8888/lesson-plan/add-new-blocks-to-your-site-using-the-block-directory/#primaryimage"
	            },
	            "image": {
	                "@id": "http://localhost:8888/lesson-plan/add-new-blocks-to-your-site-using-the-block-directory/#primaryimage"
	            },
	            "thumbnailUrl": "https://learn.wordpress.org/files/2021/02/search-block-directory-1024x625.jpg",
	            "datePublished": "2021-03-03T21:38:43+00:00",
	            "dateModified": "2022-11-28T20:34:49+00:00",
	            "breadcrumb": {
	                "@id": "http://localhost:8888/lesson-plan/add-new-blocks-to-your-site-using-the-block-directory/#breadcrumb"
	            },
	            "inLanguage": "en-NZ",
	            "potentialAction": [
	                {
	                    "@type": "ReadAction",
	                    "target": [
	                        "http://localhost:8888/lesson-plan/add-new-blocks-to-your-site-using-the-block-directory/"
	                    ]
	                }
	            ]
	        },
	        {
	            "@type": "ImageObject",
	            "inLanguage": "en-NZ",
	            "@id": "http://localhost:8888/lesson-plan/add-new-blocks-to-your-site-using-the-block-directory/#primaryimage",
	            "url": "https://learn.wordpress.org/files/2021/02/search-block-directory-1024x625.jpg",
	            "contentUrl": "https://learn.wordpress.org/files/2021/02/search-block-directory-1024x625.jpg"
	        },
	        {
	            "@type": "BreadcrumbList",
	            "@id": "http://localhost:8888/lesson-plan/add-new-blocks-to-your-site-using-the-block-directory/#breadcrumb",
	            "itemListElement": [
	                {
	                    "@type": "ListItem",
	                    "position": 1,
	                    "name": "Home",
	                    "item": "http://localhost:8888/"
	                },
	                {
	                    "@type": "ListItem",
	                    "position": 2,
	                    "name": "Lesson Plans",
	                    "item": "http://localhost:8888/lesson-plans/"
	                },
	                {
	                    "@type": "ListItem",
	                    "position": 3,
	                    "name": "Add New Blocks to Your Site Using the Block Directory"
	                }
	            ]
	        },
	        {
	            "@type": "WebSite",
	            "@id": "http://localhost:8888/#website",
	            "url": "http://localhost:8888/",
	            "name": "Learn",
	            "description": "",
	            "potentialAction": [
	                {
	                    "@type": "SearchAction",
	                    "target": {
	                        "@type": "EntryPoint",
	                        "urlTemplate": "http://localhost:8888/?s={search_term_string}"
	                    },
	                    "query-input": "required name=search_term_string"
	                }
	            ],
	            "inLanguage": "en-NZ"
	        }
	    ]
	}</script>

While this plugin offers many features, it's my understanding that we prefer to implement our own solutions based on the exact feature set we require. I think implementing the tags suggested on https://developers.google.com/search/docs/crawling-indexing/special-tags is probably a good starting point. Note that keywords isn't used by Google specifically, and Yoast also doesn't add it. Thoughts?

@amitpatel0702
Copy link
Author

amitpatel0702 commented Nov 29, 2022

Hi @adamwoodnz, I agree with you on this.

Yes, we need to implement our own solution based on the features we can see in Yoast Meta box (as seen in attached image).

For Keywords - Its clear that it's not utilized by Google or any other search and even Yoast doesn't add it. But for us Keyword means - Tags (Impactful words in every page or article) that help to get more visibility across not only google search but also other search engines.

editing-your-meta-description-in-Yoast-SEO (2)

@digitalchild
Copy link
Contributor

I find that having to re-invent the wheel for solutions like this isn't the best allocation of our limited resources. We shouldn't be spending our development time reinventing the wheel. The time should be focused on making learn better.

From my perspective, and what I've seen from other teams, there are a bunch of silos that don't talk to each other and the various teams are duplicating effort and code when we could be installing a plugin and focusing on what we should be. There needs to be more collaboration between teams at the code level to better enhance all the meta sites.

@dd32
Copy link
Member

dd32 commented Apr 20, 2023

As a flyby commenter... can I ask "Why?" What is the actual goal attempting to be made here? This issue appears to be taking the direction of "We NEED this, because we have a problem" rather than what would be more helpful of "This is the problem I'm seeing, this is a potential solution I can think of"

Just as a suggestion if we can add on page part like meta title, meta description and meta keywords, that would really help.

Why? What is wrong with the current values for those fields? Why do you need to customise them specifically? Can you give an example of what you'd like to change?

We can add meta title, meta description and meta keywords part into the head part.

Those already exist, sans Keywords as it's not actually useful, as covered above.
To use an example, on https://learn.wordpress.org/lesson-plan/add-new-blocks-to-your-site-using-the-block-directory/ we have:

<meta property=“og:title” content=“Add New Blocks to Your Site Using the Block Directory | Learn WordPress ” />
<meta property=“og:description” content=“The Block Directory helps WordPress users discover, test and install new blocks for their website. The WordPress Block Directory searches the free WordPress plugin directory for third-party WordPre…” />

The title there is the Post title / Site title, what would you customise the meta tag to? Is the change you would suggest something that we should also adjust the <title> to? Can we improve it for every Lesson automatically? Can we apply it to other parts of WordPress.org?
The description there is.. admittedly, it's not great, because it's just the automatically generated excerpt for the content. You should already be able to customise that by setting a page excerpt, which would take place of that. As a benefit that excerpt would then be used for embeds of the page and other things like Search.

Personally I think the auto-excerpt should be updated to use the first full sentence, or first two, depending on the exact word counts rather than cutting off half way through as currently happening. Although, doing so wouldn't improve Search Results via engines like google who trim those excerpt even further and ignore the description value entirely if it believes it doesn't match the content.

We can also optimize content according to guidelines based on alt tags, heading tags, content distribution etc.

This is a different request to the original issue, this request is "Install a plugin to provide contextual content optimizations" that's significantly different to "Install a SEO plugin to optimize meta tags".

re-invent the wheel

To be clear, I don't think anyone wants to re-invent the wheel. But WordPress.org properties have some significant long-term maintenance burdens involved, today there's a number of people involved in maintenance of a lot of properties, but tomorrow there might be far fewer, or those few are focused on other initiatives. Installing plugins to solve problems without actually looking at whether it's a problem that needs being solved, and if that's the best way to solve it, brings long-term reliance and maintenance aspects.

WordPress.org runs as close-to WordPress trunk and core as possible, it's vanilla WordPress in many ways, dogfooding is a way to ensure that both we use WordPress to it's full extent and highlight it's benefits and are aware of it's shortcomings. It's one of the main principals of WordPress.org, as we can trust a little more that core will not change in a way that breaks our stuff years after something was implemented, and if it does, is widely known and can either be fixed or someone can figure out how to fix it, rather than a specific plugin we installed that 3 years later is no longer maintained.

Plugins obviously have their place. Sensei for Learn is a no-brainer, Core doesn't provide that functionality, It doesn't provide Podcasting integrations either, so a podcasting plugin was ideal, It doesn't support Forums, so bbPress was ideal. etc.

@digitalchild
Copy link
Contributor

Thanks for your input @dd32. This makes a lot of sense, and I completely agree. I don't think we need this specific issue. When it comes to building out the functionality we do need, I think my biggest issue is the lack of collaboration between teams and re-using code / features that are common across the teams. For instance, handling translations of content. But this is more of a discussion that should be held on meta as opposed to this issue.

@bsanevans
Copy link
Contributor

Thank you to everyone who has contributed to this discussion so far. Before we move further with this, we need to identify what problem we're trying to solve first. This has been brought up twice in this conversation in this comment and this comment. Let's discuss these questions:

  • What problem is this issue trying to solve?
  • Without adding any code/plugin, what can the team do right now with the site features we already have to solve this problem?
@meaganhanes
Copy link

meaganhanes commented May 9, 2023

I think one of the reasons this was suggested is discoverability. At this phase of the project we have generated so many resources, documentation, videos and lesson plans now that the issue is often now a signal-vs-noise problem.

How do we get WordPressers, new and legacy alike, the information they need?

More finer control over SEO values may help us surface more relevant content, is perhaps the hypothesis here. This is similar to another hypothesis we have regarding the Metrics for Learn: We think by understanding what content is most desired and most watched, we can prioritize promotion, translation, and ultimately adoption. The opposite is also true - content that is not watched should be reviewed to understand why it's not resonating.

It's a fair point that adding plugins to WordPress.org must match multiple use cases in order to justify the long term costs of the infrastructure change. In that light, I'd love to learn more about how other Teams are using Make and their Properties, to see if discoverability is also an issue elsewhere.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Component] Learn Plugin Website development issues related to the Learn plugin. [Component] Learn Theme Website development issues related to the Learn theme. [Type] Enhancement New feature request for the Learn website.
7 participants