Structured data about hidden content
Search engines typically don’t publish detailed guidelines about which kind of hidden data (or how much) they take into account for their structured-data-based search result features.
Some is certainly okay -- after all, there are many things for which it wouldn’t always make sense to get displayed on the page (e.g., the height
/width
of an ImageObject
), even shown in Google’s own examples -- and some other probably isn’t.
For example, Google says in their quality guidelines:
Markup should not be used to hide content not visible to users in any form, since it might create a misleading or deceptive search experience. For example, if the JSON-LD markup describes a performer, the HTML body should describe that same performer.
They give an extreme example which doesn’t apply to your case. Unfortunately, they don’t provide more details.
In general, providing hidden data can be perfectly fine and useful, and you shouldn’t omit this data just because a search engine doesn’t take it into account for their rich results. While providing data about visible content is the best case, providing relevant data about invisible content is better than not providing it at all. As long as you don’t try to deceive, you should be fine.
That said, you shouldn’t expect that search engines index your hidden content. If they don’t, your hidden name couldn’t possibly affect the ranking.
Markup in your case
You say that it’s "obvious" who the author is. That means that at some place on your site you show your name, right? In that case, it’s not really hidden content, just content that doesn’t get repeated on every page. Again, search engines don’t publish guidelines that detailed, but I think it’s safe to assume that such a case might get handled differently.
The best practice from the structured data perspective is to define a Person
item on the relevant page (e.g., your "About" page, or the homepage, or wherever you say something about yourself) and to reference this item as author
of the BlogPosting
items on other pages.
See a similar Microdata example, and an explanation about URIs as identifiers.
To enable rich results that require the person’s name as a string value on that page, you can mix both ways:
<div itemprop="author" itemscope itemtype="http://schema.org/Person" itemid="/author/Chedy2149#i">
<link itemprop="url" href="/author/Chedy2149" />
<meta itemprop="name" content="Chedy2149" />
</div>
(where /author/Chedy2149#i
is the URI that represents the person, and /author/Chedy2149
the URI of the page where the Person
item is defined)