H1 and Schema Codes Set Up Correctly?
-
Greetings:
It was pointed out to me that the h1 tags on my website (www.nyc-officespace-leader.com) all had exactly the same text and that duplication may be contributing to the very low page authority for most URLs.
The duplicate h1 appears in line 54-54 (see below) of the home page: www.nyc-officespace-leader.com:
itemscope itemtype="http://schema.org/LocalBusiness" style="position:absolute;top:-9999em;">
<span<br>itemprop="name">Metro Manhattan Office Space</span<br>
<img< p="">But the above refers to schema" so is this really duplicate H1 or is there an exception if the H1 is within a schema?
Also, I was told that the company street address and city and state were set up incorrectly as part of an alt tag. However these items also appear as schema in lines 49-68 shown below:
Dangerous for me to perform surgery on the code without being certain about these key items!! Could ask my developer, however they may be uncomfortable considering that they set this up in the 1st place. So the view of neutral professionals would be highly welcome!
itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span<br>itemprop="streetAddress">347 5th Ave #1008
<span<br>itemprop="addressLocality">New York
<span<br>itemprop="addressRegion">NY
<span<br>itemprop="postalCode">10016<div<br>itemprop="brand" itemscope itemtype="http://schema.org/Organization">
---------------------------------------------------------------------------</div<br></span<br></span<br></span<br></span<br></img<> -
For suggestion 1, I should clarify that you already are using Microdata. Your Microdata is repeating what is already in the page, rather than "tagging" your existing content inline. Microdata is a good tool to use if you are able to tag pieces of content as you are communicating it to a human reader; it should follow the natural flow of what you are writing to be read by humans. This guide walks you through how Microdata can be implemented inline with your content, and it's worth reading through to see what's available and how to step forward with manual implementation of Schema.org with confidence.
Will these solutions remove the duplicate H1 tag?
Whatever CMS or system you are using to produce the hidden microdata markup needs to be changed to remove its attempt entirely. The markup of the content itself is good, but it needs to be combined in with existing content or implemented with JSON+LD so that it is not duplicating the HTML you are showing the user.
Are these options relatively simple for an experienced developer? Is one option superior to the other?
Both should be, but it depends on your strategy. Are you hand-rolling your schema.org markup? Is somebody going into your content and wrapping the appropriate content with the correct microdata? This can be a pain in the butt and time-consuming, especially if they're not tightly embedded with your content production team.
I downloaded the HTML and reviewed the Microdata implementation. I don't mean to sound unkind but it looks like computer-generated HTML and it's pretty difficult to read and manipulate without matching tags properly.
Is one option superior to the other?
Google can read either without issue; they recommend JSON+LD (source).
In your case, I'd also recommend JSON+LD because:
- Your investment in Microdata is not very heavy and appears easy enough to unwind
- The content you want to show users isn't exactly inline with the content you want read by crawlers anyway (for example, your address isn't on the page and visible to readers)
- It's simple enough to write by hand, and there exist myriad options to embed programmatically-generated schema.org content in JSON+LD format
Please review this snippet comparing a Microdata solution and a JSON+LD solution side by side.
PLEASE DO NOT COPY AND PASTE THIS INTO YOUR SITE. It is meant for educational and demonstrative purposes only.
There are comments inline that should explain what's going on: https://gist.github.com/TheDahv/dc38b0c310db7f27571c73110340e4ef
-
Hi Again:
Will option #1 (keeping existing microdata) remove the duplicate h1 tag? Your suggestion listed below:
"So, wherever the
tag with the company name lives that is rendered and shown to the user, ad the "LocalBusiness" itemscope to the parent tag that surrounds it and its content. Basically you'd merge your Schema.org code with the user-facing content"
-
Hi David:
Schema was added to the site discretely provide location data to Google.
You suggested 2 potential solutions:
1. Use Microdata...
2. Use JSON+LD..
Will these solutions remove the duplicate H1 tag?
We are concerned that the low rank of our URLs (80% are 1) are caused by duplicate H1s on each page.
Are these options relatively simple for an experienced developer? Is one option superior to the other?
Thanks for your patience in explaining these options, my programming understanding is limited.
Alan -
I see that you're using CSS to get that markup into the page, but definitely not visible to the user. Am I interpreting that right? If so, it seems like your goal is to get some Schema.org tags into the page to mark up your content as a LocalBusiness.
I have 2 ideas for you:
Use microdata (the markup format you're using now) to mark up your tags inline with your existing content. So, wherever the
tag with the company name lives that is rendered and shown to the user, ad the "LocalBusiness" itemscope to the parent tag that surrounds it and its content. Basically you'd merge your Schema.org code with the user-facing content
Use JSON+LD markup instead. You can get the same information "repeated" but the JSON+LD markup isn't rendered for users. jsonld.com has a great page with a template you can copy and adjust to suit your business. If you go this route, remove the microdata-laden HTML hidden off the page with the inline CSS and replace it with the JSON+LD wrapped in . Google also has some great documentation around the LocalBusiness type.
Hope that helps!
Got a burning SEO question?
Subscribe to Moz Pro to gain full access to Q&A, answer questions, and ask your own.
Browse Questions
Explore more categories
-
Moz Tools
Chat with the community about the Moz tools.
-
SEO Tactics
Discuss the SEO process with fellow marketers
-
Community
Discuss industry events, jobs, and news!
-
Digital Marketing
Chat about tactics outside of SEO
-
Research & Trends
Dive into research and trends in the search industry.
-
Support
Connect on product support and feature requests.
Related Questions
-
Setting country specific top level domain as alias - will site benefit from TLDs authority?
I have a host of sites that follow a top level domain strategy. For each local site they will be on the top level domain but with their country-languages prefix as the subdirectory. Such as below: example.com
Intermediate & Advanced SEO | | gracejo
example.com/uk-en
example.com/sg-en
example.com/de-de Each local site being on the TLD will benefit them in terms of SEO and it makes it easier to have one strategy. My question however, if the Netherlands comes on board, they would generally have example.com/nl-en. However they want their primary domain as examplenetherlands.nl and the TLD (example.com/nl-en) set as an alias/secondary domain that redirects to the primary. Will they benefit from any SEO if the TLD is not the primary address?0 -
How to find correct schema type
Dear Moz members, I m currently working on schema optimizations of my website casinobesty.com which review online casino websites. I have a doubt which schema itemReviewed type I have to use in the review pages. Currently I m using type as "Game" but I m not sure it is correct. "description": "",
Intermediate & Advanced SEO | | CongthanhThe
"itemReviewed": {
"@type": "Game",
"name": "LeoVegas Casino",
"url": "https://casinobesty.com/casino/leovegas-casino/"
}, Thank you1 -
SEO friendly H1 tag with 2 text lines
Hi everyone, I am trying to add span tags in H1, break tag on 2 lines and style each line of H1 differently: Example: Line 1Line 2 I might add a smaller font for line 2 as well... Is this SEO friendly? Will crawlers read entire text or can interfere and block it. Thank you!
Intermediate & Advanced SEO | | bgvsiteadmin0 -
Schema types for webinars, infographics, datasheets, product videos and eBooks
Hi, I’m looking to add Schema markup to my company pages’s webinar page (recording past webinars) and data sheets, infographics, product videos, eBooks/white papers. For eBooks, I am primarily referring to a landing page with a gate to download a PDF document. I’m trying to determine the best markup type: For Webinars, I’ve seen suggestions to use “Event” type but that seems appropriate for future events, not something like a recorded webinar, which is not time-sensitive, unlike a live event. However, I see a StackOverflow forum to use http://schema.org/recordedIn for recorded webinars. For eBooks and White Papers, I see a few potential schema types: https://schema.org/DigitalDocument https://schema.org/CreativeWork http://schema.org/EBook (or https://schema.org/Book and then book format type of Ebook)
Intermediate & Advanced SEO | | WhiteHat10 -
Hhreflang been setup correctly?
Hi guys, We recently setup US hreflang tags across a site. According to Deep Crawl it seems the tags are working. http://s3.postimg.org/5b8rzq9r6/screenshot_1494.jpg However when i test it out with http://flang.dejanseo.com.au/ I seem to be getting no language, region and under notes it saids "Reciprocal not found" (does anyone know what this means?) http://s16.postimg.org/quiiaob1h/screenshot_1495.jpg Any ideas? Cheers
Intermediate & Advanced SEO | | jayoliverwright0 -
GWT does not play nice with 410 status code approach to expire content? Use 301s?
We have been diligently managing our index size in Google for our sites and are returning a 410 status code for pages that we no longer consider "up-to-date" but still carry value for users to access to have Google remove them from our index to keep it lean. However we have been receiving GWT warning across sites because of the 410 status codes Google is encountering which makes us nervous that Google could interpret this approach as a lack of quality of our site. Does anyone have a view if the 410 approach is the right approach for the given example or if we should consider maybe simply using 301s or another status code to keep our GWT errors clean? Further notes there is hardly ever any link juice being sent to those pages so it is not like we are missing out on that the pages for which we return 410 are also marked as noindex and nofollow
Intermediate & Advanced SEO | | petersocapro0 -
Does anyone have any experience using GoodRelations Snippet Generator for E-Commerce versus markup from Schema.org?
I am trying to implement Structured Data markup on a large e-commerce site that has ancient code and is not on any standard e-commerce platform. It is a Webstore we self-host that was developed for us and heavily customized. What's worse is that I don't have access to the source code. I have to somehow instruct our IT Director how and where to place everything. So I'm going to need to be meticulously specific. As I began wading through our code and determining where to insert code as instructed by Schema.org I ran across this on one of their pages: "This class contains derivatives of properties from the GoodRelations Vocabulary for E-Commerce, created by Martin Hepp. GoodRelations is a data model for sharing e-commerce data on the Web that can be expressed in a variety of syntaxes, including RDFa and HTML5 Microdata. More information about GoodRelations can be found at http://purl.org/goodrelations/." I went to check it out and it appears that this could be a great resource as it has a snippet generator and several "cookbooks" for adding micro data to our site. Here's a link to their snippet generator: http://www.ebusiness-unibw.org/tools/grsnippetgen/ However, with a catalog of 5,000 SKUs, needless to say we aren't going to plug in our products into this generator one-by one. Has anyone here successfully used GoodRelations to help them implement micro data into a large E-commerce site that isn't a standard platform (not Magento, WP, Joomla or Volusion) ?? I would be very greatful to anyone who can share their experiences and or make suggestions on how we might best proceed. Thanks! Dana
Intermediate & Advanced SEO | | danatanseo0 -
Google Not Indexing Description or correct title (very technical)
Hey guys, I am managing the site: http://www.theattractionforums.com/ If you search the keyword "PUA Forums", it will be in the top 10 results, however the title of the forum will be "PUA Forums" rather than using the code in the title tag, and no description will display at all (despite there being one in the code). Any page other than the home-page that ranks shows the correct title and description. We're completely baffled! Here are some interesting bits and pieces: It shows up fine on Bing If I go into GWT and Fetch as Google Bot, it shows up as "Unreachable" when I try to pull the home-page. We previously found that it was pulling 'index.htm' before 'index.php' - and this was pulling a blank page. I've fixed this in the .htaccess however to make it redirect, however this hasn't solved the problem. I've disallowed it from pulling the description .etc from the Open Directory with the use of meta tags - didn't change anything. It's vBulletin and is running vBSEO Any suggestions at all guys? I'll be forever in anyones debt who can solve this, it's proving to be near impossible to fix. Here is the .htaccess file, it may be a part of the issue: RewriteEngine On DirectoryIndex index.php index.html Redirect /index.html http://www.theattractionforums.com/index.php RewriteCond %{HTTP_HOST} !^www.theattractionforums.com
Intermediate & Advanced SEO | | trx
RewriteRule (.*) http://www.theattractionforums.com/$1 [L,R=301] RewriteRule ^((urllist|sitemap_).*.(xml|txt)(.gz)?)$ vbseo_sitemap/vbseo_getsitemap.php?sitemap=$1 [L] RewriteCond %{REQUEST_URI} !(admincp/|modcp/|cron|vbseo_sitemap/)
RewriteRule ^((archive/)?(..php(/.)?)?)$ vbseo.php [L,QSA] RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !^(admincp|modcp|clientscript|cpstyles|images)/
RewriteRule ^(.+)$ vbseo.php [L,QSA]
RewriteRule ^forum/(.*)$ http://www.theattractionforums.com/$1 [R=301,L]0